Go 言語ネットワーク プログラミングのキー ポイントと実践的な経験を習得するには、具体的なコード例が必要です
1. Go 言語ネットワーク プログラミングのキー ポイント
ネットワーク プログラミングとは、コンピューター ネットワークを使用して通信するプログラミング テクノロジを指します。 Go 言語では、TCP および UDP 接続の作成と管理、サーバーとクライアント間の対話の実現などのネットワーク プログラミングに標準ライブラリの net パッケージを使用できます。
Go 言語では、ソケットはネット パッケージ内のインターフェイスを使用して表現および操作されます。 Listen 関数を呼び出して指定したアドレスにソケットを作成し、Accept メソッドを使用してクライアントからの接続要求を受信できます。接続を受信した後、Read メソッドと Write メソッドを通じてデータを読み書きできるようになります。
次に、ローカル ポート 8080 でリッスンするサーバーを構築する簡単な TCP サーバー コードの例を示します。
package main import ( "fmt" "net" ) func handleConn(conn net.Conn) { defer conn.Close() // 处理连接 // ... } func main() { listener, err := net.Listen("tcp", "localhost:8080") if err != nil { fmt.Println("Error listening:", err.Error()) return } defer listener.Close() fmt.Println("Server is listening on localhost:8080") for { conn, err := listener.Accept() if err != nil { fmt.Println("Error accepting:", err.Error()) return } go handleConn(conn) } }
以下は簡単な TCP クライアント コードの例です。ローカル 8080 ポートに接続してデータを送信します。
package main import ( "fmt" "net" ) func main() { conn, err := net.Dial("tcp", "localhost:8080") if err != nil { fmt.Println("Error dialing:", err.Error()) return } defer conn.Close() // 发送数据 // ... // 接收数据 // ... }
TCP に加えて、Go 言語は UDP プロトコルもサポートしています。 UDP は、TCP よりもオーバーヘッドが低く、伝送速度が速いコネクションレス型伝送プロトコルです。
以下は簡単な UDP サーバー コードの例です:
package main import ( "fmt" "net" ) func main() { conn, err := net.ListenPacket("udp", ":8080") if err != nil { fmt.Println("Error listening:", err.Error()) return } defer conn.Close() buffer := make([]byte, 1024) for { n, addr, err := conn.ReadFrom(buffer) if err != nil { fmt.Println("Error reading:", err.Error()) return } fmt.Printf("Received '%s' from %s ", string(buffer[:n]), addr.String()) } }
以下は簡単な UDP クライアント コードの例です:
package main import ( "fmt" "net" ) func main() { serverAddr, err := net.ResolveUDPAddr("udp", "localhost:8080") if err != nil { fmt.Println("Error resolving address:", err.Error()) return } conn, err := net.DialUDP("udp", nil, serverAddr) if err != nil { fmt.Println("Error dialing:", err.Error()) return } defer conn.Close() // 发送数据 // ... // 接收数据 // ... }
2. Go 言語ネットワーク プログラミングの実践経験
以上がGo 言語によるネットワーク プログラミングの重要な知識と実践的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。