1
0

echo_server.go 594 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "fmt"
  4. "io"
  5. "github.com/fatedier/frp/src/utils/conn"
  6. )
  7. var (
  8. PORT int64 = 10701
  9. )
  10. func main() {
  11. l, err := conn.Listen("0.0.0.0", PORT)
  12. if err != nil {
  13. fmt.Printf("echo server listen error: %v\n", err)
  14. return
  15. }
  16. for {
  17. c, err := l.Accept()
  18. if err != nil {
  19. fmt.Printf("echo server accept error: %v\n", err)
  20. return
  21. }
  22. go echoWorker(c)
  23. }
  24. }
  25. func echoWorker(c *conn.Conn) {
  26. for {
  27. buff, err := c.ReadLine()
  28. if err == io.EOF {
  29. break
  30. }
  31. if err != nil {
  32. fmt.Printf("echo server read error: %v\n", err)
  33. return
  34. }
  35. c.Write(buff)
  36. }
  37. }