net.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package main
  2. import (
  3. "fmt"
  4. "io"
  5. "log"
  6. "net"
  7. "os"
  8. "time"
  9. )
  10. func main() {
  11. // client()
  12. // server()
  13. testServer()
  14. }
  15. func testServer() {
  16. listener, err := net.Listen("tcp", "localhost:8081")
  17. if err != nil {
  18. log.Println(err)
  19. }
  20. conn, err := listener.Accept()
  21. if err != nil {
  22. log.Println(err)
  23. }
  24. defer conn.Close()
  25. conn.Write([]byte("message"))
  26. time.Sleep(10)
  27. conn.Write([]byte("mesSaGe"))
  28. time.Sleep(10)
  29. conn.Write([]byte("MESSAGE"))
  30. }
  31. func client() {
  32. // Подключенине к серверу
  33. conn, err := net.Dial("tcp", "142.251.39.142:80")
  34. if err != nil {
  35. log.Println(err)
  36. }
  37. defer conn.Close()
  38. // Чтение данных с сервера
  39. message := make([]byte, 1024) // создаем буфер
  40. n, err := conn.Read(message)
  41. if err != nil {
  42. log.Println(err)
  43. }
  44. fmt.Println(string(message[:n]))
  45. // Вывод данных в консоль
  46. io.Copy(os.Stdout, conn)
  47. }
  48. func server() {
  49. listener, err := net.Listen("tcp", "localhost:80")
  50. if err != nil {
  51. fmt.Println("Error:", err)
  52. return
  53. }
  54. defer listener.Close()
  55. /*
  56. for {
  57. conn, err := listener.Accept()
  58. if err != nil {
  59. fmt.Println("Error:", err)
  60. continue
  61. }
  62. go handleConnection(conn)
  63. }
  64. */
  65. /*
  66. // Создаём слушатель для порта
  67. ln, err := net.Listen("tcp", "localhost:80")
  68. if err != nil {
  69. log.Println(err)
  70. }
  71. defer ln.Close()
  72. for {
  73. conn, err := ln.Accept()
  74. if err != nil {
  75. log.Fatal(err)
  76. }
  77. go func(c net.Conn) {
  78. io.Copy(c, c)
  79. c.Close()
  80. }(conn)
  81. }
  82. */
  83. /*
  84. // Принимаем входящие подключения
  85. conn, err := ln.Accept()
  86. if err != nil {
  87. log.Println(err)
  88. }
  89. _, err = conn.Write([]byte("message"))
  90. if err != nil {
  91. log.Println(err)
  92. }
  93. */
  94. }