echo_server.go 646 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "bufio"
  4. "fmt"
  5. "io"
  6. "github.com/fatedier/frp/utils/net"
  7. )
  8. var (
  9. PORT int64 = 10701
  10. )
  11. func main() {
  12. l, err := net.ListenTcp("127.0.0.1", PORT)
  13. if err != nil {
  14. fmt.Printf("echo server listen error: %v\n", err)
  15. return
  16. }
  17. for {
  18. c, err := l.Accept()
  19. if err != nil {
  20. fmt.Printf("echo server accept error: %v\n", err)
  21. return
  22. }
  23. go echoWorker(c)
  24. }
  25. }
  26. func echoWorker(c net.Conn) {
  27. br := bufio.NewReader(c)
  28. for {
  29. buf, err := br.ReadString('\n')
  30. if err == io.EOF {
  31. break
  32. }
  33. if err != nil {
  34. fmt.Printf("echo server read error: %v\n", err)
  35. return
  36. }
  37. c.Write([]byte(buf + "\n"))
  38. }
  39. }