1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. "time"
  6. )
  7. func main() {
  8. addr := "127.0.0.1:8888"
  9. protocol := "tcp"
  10. listener, err := net.Listen(protocol, addr)
  11. if err != nil {
  12. fmt.Println(err)
  13. return
  14. }
  15. for {
  16. conn, err := listener.Accept()
  17. if err != nil { // 服务器关闭
  18. fmt.Println(conn)
  19. continue
  20. }
  21. go func() { //在这里处理并发,因为主例程不会退出,所以工作例程不需要引入计数信号量
  22. fmt.Println("客户端连接成功: ", conn.RemoteAddr())
  23. time.Sleep(10 * time.Second)
  24. // 发送时间
  25. fmt.Fprintln(conn, time.Now().Format("2006-01-02 15:04:05"))
  26. conn.Close()
  27. fmt.Println("客户端退出: ", conn.RemoteAddr())
  28. }()
  29. }
  30. listener.Close()
  31. }
文档更新时间: 2021-08-26 14:58   作者:张尚