[フレーム]
Last Updated: December 13, 2020
·
1.445K
· STK

簡単にGOでTCPサーバーを作る方法

下記コードをコピペすると、簡易版TCPサーバーがPort3333で稼働します。

package main

import (
 "fmt"
 "net"
 "os"
)

const (
 CONN_HOST = "localhost"
 CONN_PORT = "3333"
 CONN_TYPE = "tcp"
)

func main() {
 // Listen for incoming connections.
 l, err := net.Listen(CONN_TYPE, CONN_HOST+":"+CONN_PORT)
 if err != nil {
 fmt.Println("Error listening:", err.Error())
 os.Exit(1)
 }
 // Close the listener when the application closes.
 defer l.Close()
 fmt.Println("Listening on " + CONN_HOST + ":" + CONN_PORT)
 for {
 // Listen for an incoming connection.
 conn, err := l.Accept()
 if err != nil {
 fmt.Println("Error accepting: ", err.Error())
 os.Exit(1)
 }
 // Handle connections in a new goroutine.
 go handleRequest(conn)
 }
}

// Handles incoming requests.
func handleRequest(conn net.Conn) {
 // Make a buffer to hold incoming data.
 buf := make([]byte, 1024)
 // Read the incoming connection into the buffer.
 reqLen, err := conn.Read(buf)
 if err != nil {
 fmt.Println("Error reading:", err.Error())
 }
 // Send a response back to person contacting us.
 conn.Write([]byte("Message received."))
 // Close the connection when you're done with it.
 conn.Close()
}

aw data to t

サーバーをテストしたいときは、なんでも良いので生データを下記Portに送ります。

echo -n "test out the server" | nc localhost 3333

下記レスポンスが帰ってくるはずです。

"Message received."

1 Response
Add your response

К черту английский, ведь есть google translate ))))

over 1 year ago ·

AltStyle によって変換されたページ (->オリジナル) /