glight2000 10 лет назад
Родитель
Сommit
412725d3b0
1 измененных файлов с 37 добавлено и 0 удалено
  1. 37 0
      eBook/examples/chapter_15/server.go

+ 37 - 0
eBook/examples/chapter_15/server.go

@@ -0,0 +1,37 @@
+package main
+
+import (
+	"fmt"
+	"net"
+)
+
+func main() {
+	fmt.Println("Starting the server ...")
+	// 创建 listener
+	listener, err := net.Listen("tcp", "localhost:50000")
+	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 doServerStuff(conn)
+	}
+}
+
+func doServerStuff(conn net.Conn) {
+	for {
+		buf := make([]byte, 512)
+		_, err := conn.Read(buf)
+		if err != nil {
+			fmt.Println("Error reading", err.Error())
+			return //终止程序
+		}
+		fmt.Printf("Received data: %v", string(buf))
+	}
+}