行くのHTTPサーバのネットワークプログラミング言語に

V1

1  パッケージメイン
 2  
3  インポート4      " ログイン" 
5      " ネット/ HTTP " 
6  7  
8  FUNCメイン(){//根路由
 9      http.HandleFunc(" / " http.ResponseWriter、R * W、FUNC(HTTP。リクエスト){
 10          w.Write([]バイト(" こんにちは、これはバージョン1である"))// 字符串转换成字节
 11      })
 12      http.HandleFunc(" / BYE " 、sayBye)
 13  
14      ログ。 println(" ... V1サーバーの起動" //)ログの印刷
 15      log.Fatal(http.ListenAndServe(" 400 "、ゼロ))// 一般的に行われていない
 16  }
 17  
18はある FUNC sayBye(W http.ResponseWriter、 * R&LT http.Request){
 19      w.Write([]バイト(" バイバイこのバージョン1は、IS " ))
 20です }

結果

 

 

 

 

 

 

V2

パッケージメイン

インポート" ログ" 
    " ネット/ HTTP " 

、メインFUNC(){ 
    MUX: = http.NewServeMux()
    mux.Handle(" / "、&はmyHandler {})
    mux.HandleFunc(" / BYE " 、sayBye)

    log.Println(" 起動サーバ... V2 " 
    log.Fatal(http.ListenAndServe(" 40 " 、MUX))
} 

sayBye FUNC(http.ResponseWriter W、R * http.Request){ 
    wです。(([]バイトを書きます"バイバイこれはバージョン2です!" ))
} 

はmyHandler構造体を入力し、{} 

FUNC( *はmyHandler)ServeHTTP(W http.ResponseWriter、R * http.Request){ 
    w.Write([]バイト(" ハローV2、要求URLは:" + r.URL .String()))
}

結果

 

 

 

 

 

 V3

パッケージのメイン

インポート" ログ" 
    " ネット/ HTTP " 
    " OS " 
    " OS /信号" 
    " 時間" 

メインFUNC(){ 
    サーバー: =&http.Server { 
        ADDR:          " :40000 " 
        WriteTimeout:time.Second *図2は
    } 
    終了: = (チャンos.Signal)する
    signal.Notify(os.Interruptを終了)

    :MUX = http.NewServeMux()
    mux.Handle("/"& はmyHandler {})
    mux.HandleFunc(" / BYE "sayByeは)

    (FUNCを行く){
         < - 終了し

        た場合 ERR:= server.Close();誤る=!nilの{ 
            log.Fatal(" 閉じるサーバー:" 、ERR)
        } 
    }()

    server.Handler = マルチプレクサ
    log.Print(" ... V3を、サーバの起動" 
    ERR: = server.ListenAndServe()
     であれば!ERR = nilの{
         場合、ERR ==  http.ErrServerClosed {
            log.Print("サーバーは要求の下では閉じ。" 
        } { 
            log.Fatalが(" サーバーが予期しない閉鎖" 
        } 
    } 
} 

sayBye FUNC(http.ResponseWriter W、R * http.Request){ 
    time.Sleep( 3 * 時間.Second)
    w.Write([]バイト(" バイバイこれはバージョン3である" ))
} 

はmyHandler構造体を入力し、{} 

FUNC( *はmyHandler)ServeHTTP(W http.ResponseWriter、R * http.Request){ 
    w.Write ([]バイト("こんにちはV3、リクエストURLは次のとおりです。" +r.URL.String()))
}

結果

 

 

 

 

 変化に2秒4秒後にタイムアウトを書きます

 

おすすめ

転載: www.cnblogs.com/chenguifeng/p/11782688.html