|
|
@@ -0,0 +1,106 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "io"
|
|
|
+ "log"
|
|
|
+ "net"
|
|
|
+ "os"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+func main() {
|
|
|
+ // client()
|
|
|
+ // server()
|
|
|
+ testServer()
|
|
|
+}
|
|
|
+
|
|
|
+func testServer() {
|
|
|
+ listener, err := net.Listen("tcp", "localhost:8081")
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ conn, err := listener.Accept()
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ defer conn.Close()
|
|
|
+
|
|
|
+ conn.Write([]byte("message"))
|
|
|
+ time.Sleep(10)
|
|
|
+ conn.Write([]byte("mesSaGe"))
|
|
|
+ time.Sleep(10)
|
|
|
+ conn.Write([]byte("MESSAGE"))
|
|
|
+}
|
|
|
+
|
|
|
+func client() {
|
|
|
+ // Подключенине к серверу
|
|
|
+ conn, err := net.Dial("tcp", "142.251.39.142:80")
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ defer conn.Close()
|
|
|
+
|
|
|
+ // Чтение данных с сервера
|
|
|
+ message := make([]byte, 1024) // создаем буфер
|
|
|
+ n, err := conn.Read(message)
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ fmt.Println(string(message[:n]))
|
|
|
+
|
|
|
+ // Вывод данных в консоль
|
|
|
+ io.Copy(os.Stdout, conn)
|
|
|
+}
|
|
|
+
|
|
|
+func server() {
|
|
|
+
|
|
|
+ listener, err := net.Listen("tcp", "localhost:80")
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer listener.Close()
|
|
|
+ /*
|
|
|
+ for {
|
|
|
+ conn, err := listener.Accept()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ go handleConnection(conn)
|
|
|
+ }
|
|
|
+ */
|
|
|
+ /*
|
|
|
+ // Создаём слушатель для порта
|
|
|
+ ln, err := net.Listen("tcp", "localhost:80")
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ defer ln.Close()
|
|
|
+
|
|
|
+ for {
|
|
|
+ conn, err := ln.Accept()
|
|
|
+ if err != nil {
|
|
|
+ log.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ go func(c net.Conn) {
|
|
|
+ io.Copy(c, c)
|
|
|
+ c.Close()
|
|
|
+ }(conn)
|
|
|
+ }
|
|
|
+ */
|
|
|
+
|
|
|
+ /*
|
|
|
+ // Принимаем входящие подключения
|
|
|
+ conn, err := ln.Accept()
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ _, err = conn.Write([]byte("message"))
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err)
|
|
|
+ }
|
|
|
+ */
|
|
|
+}
|