Explorar o código

Create server.go

glight2000 %!s(int64=10) %!d(string=hai) anos
pai
achega
412725d3b0
Modificáronse 1 ficheiros con 37 adicións e 0 borrados
  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))
+	}
+}