GoでTCPとUDPを比較してみた

この記事は 東京理科大学 Advent Calendar 2018 6日目の記事です。 はじめに 今回Goのnetパッケージを使ってTCPソケット通信を扱う機会があったので、同じnetパッケージで扱うことのできるUDPソケット通信と比較してみました。 比較方法 クライアント側からサーバ側にhelloとたくさん送り、そのまま出力した時の両者の違いをみます。 TCPソケット通信 TCPによる通信ではデータをバイトストリームと呼ばれるbyte型のひと続きのデータとして扱います。 ・クライアント クライアントのコードは以下です。 package main import ( "log" "net" ) func main() { conn, err := net.Dial("tcp", "localhost:8088") if err != nil { log.Fatal(err) } defer conn.Close() // メッセージを送信する for { msg := "hello" conn.Write([]byte(msg)) } } ・サーバ サーバのコードは以下です。 package main import ( "fmt" "log" "net" ) func main() { listener, err := net.Listen("tcp", "localhost:8088") if err != nil { log.

Read More