インターネット技術の継続的な発展に伴い、ネットワーク通信は現代の必須スキルとなっています。その過程で、効率的かつ柔軟なプログラミング手法として関数(Function)が、ますます多くのプログラマーに好まれるツールとなりました。これらの機能の中でも特に重要なのは、TCP、UDP、HTTP、WebSocket プロトコルに基づく処理方法であり、今回はこれら 4 つのプロトコルにおける Golang 関数の処理方法に焦点を当てます。
1. TCP プロトコルに基づく機能処理方式
TCP (Transmission Control Protocol) は、コネクション指向で信頼性の高い、バイト ストリーム ベースのトランスポート層プロトコルです。 Golang では、次のコードを使用して単純な TCP サーバーを作成できます。
package main import ( "fmt" "net" ) func main() { listener, err := net.Listen("tcp", "127.0.0.1:8080") if err != nil { fmt.Println("Error listening:", err.Error()) return } for { conn, err := listener.Accept() if err != nil { fmt.Println("Error accepting:", err.Error()) return } go handleRequest(conn) } } func handleRequest(conn net.Conn) { buf := make([]byte, 1024) for { _, err := conn.Read(buf) if err != nil { fmt.Println("Error reading:", err.Error()) return } conn.Write([]byte("Hello, world!")) } }
上記のコードでは、net パッケージを使用して TCP リスナーを作成し、Accept() メソッドを使用して、クライアント端末接続。次に、handleRequest() 関数で接続を処理し、その接続で応答を送信します。
2. UDP プロトコルに基づく機能処理方式
UDP (User Datagram Protocol) は、非コネクションで信頼性の低いトランスポート層プロトコルです。 Golang では簡単な UDP サーバーも簡単に作成できます、コードは次のとおりです:
package main import ( "fmt" "net" ) func main() { udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:8080") if err != nil { fmt.Println("Error Resolving UDP address:", err.Error()) return } conn, err := net.ListenUDP("udp", udpAddr) if err != nil { fmt.Println("Error Listening:", err.Error()) return } defer conn.Close() for { buf := make([]byte, 1024) _, remoteAddr, err := conn.ReadFromUDP(buf) if err != nil { fmt.Println("Error Reading:", err.Error()) continue } conn.WriteToUDP([]byte("Hello, world!"), remoteAddr) } }
3. HTTP プロトコルに基づく関数処理メソッド
HTTP (Hypertext Transfer Protocol) はアプリケーションですWeb ブラウザと Web サーバーの間でデータを転送するために使用される層プロトコル。 Golang では、標準ライブラリの net/http パッケージを使用して、単純な HTTP サーバーを作成できます。コードは次のとおりです:
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
上記のコードでは、HTTP を処理するための handler() 関数を定義しています。リクエストを作成し、main() 関数で http.HandleFunc() を使用してハンドラーを指定します。最後に、http.ListenAndServe() メソッドを使用してサーバーを起動します。
4. WebSocket プロトコルに基づく機能処理方法
WebSocket は全二重プロトコルであり、通常、オンライン ゲームやインスタント チャットなどのインスタント通信機能の実装に使用されます。 Golang では、ゴリラ/websocket パッケージを使用して WebSocket サーバーを作成できます。コードは次のとおりです:
package main import ( "net/http" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } func handler(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { return } defer conn.Close() for { _, message, err := conn.ReadMessage() if err != nil { return } conn.WriteMessage(websocket.TextMessage, []byte("Hello, world!")) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
上記のコードでは、gorilla/websocket パッケージを使用して WebSocket サーバーを作成し、ハンドラーを定義します( ) WebSocket 接続を処理する関数。最後に、http.HandleFunc() メソッドと http.ListenAndServe() メソッドを使用してサーバーを起動します。
概要
TCP、UDP、HTTP、または WebSocket プロトコルのいずれであっても、Golang はサーバーを迅速に構築し、さまざまなネットワーク通信を処理するのに役立つ豊富な関数ライブラリを提供します。上記の4つのプロトコルとGolangの処理方法を学ぶことで、関数型プログラミングへの理解が深まり、Golangをより柔軟に活用してさまざまなネットワークアプリケーションを実装できるようになると思います。
以上がGolang関数のtcp、udp、http、websocketの処理方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。