package main
import (
"net"
"os"
)
const (
RECV_BUF_LEN = 1024 // 接收的緩存大小
)
func main() {
println("啟動伺服器...")
listener, err := net.Listen("tcp", ":1024") // 1024 = Server Port
if err != nil {
println("監聽錯誤:", err.Error())
println("關閉伺服器。")
os.Exit(1)
}
for {
conn, err := listener.Accept() // 持續監聽客戶端連線
if err != nil {
println("連線錯誤:", err.Error())
continue
}
go ClientLogic(conn)
}
}
func ClientLogic(conn net.Conn) {
//接收 客戶端資料
buf := make([]byte, RECV_BUF_LEN)
n, err := conn.Read(buf)
if err != nil {
println("接收錯誤:", err.Error())
return
}
println("接收 ", n, " 個 byte 資料:", string(buf))
//發送 資料至客戶端
_, err = conn.Write( [] byte("安安你好\n") )
if err != nil {
println("發送失敗:", err.Error())
} else {
println("發送成功")
}
conn.Close()
}
留言列表