Dmitry Telenkov 1 gün önce
ebeveyn
işleme
1db2aa8235

+ 47 - 0
go/stepik/4/client.go

@@ -0,0 +1,47 @@
+package main
+
+import (
+	"fmt"
+	"net"
+	"strings"
+)
+
+func main() {
+	foo1()
+}
+
+func foo1() {
+	conn, err := net.Dial("tcp", "localhost:8081")
+	if err != nil {
+		fmt.Println("err")
+	}
+	defer conn.Close()
+
+	message := make([]byte, 1024)
+
+	for i := 0; i < 3; i++ {
+		n, err := conn.Read(message)
+		if err != nil {
+			fmt.Println(err)
+		}
+		fmt.Println(strings.ToUpper(string(message[:n])))
+	}
+
+	/*
+		// Подключенине к серверу
+		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]))
+	*/
+
+}

+ 106 - 0
go/stepik/4/net.go

@@ -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)
+		}
+	*/
+}

+ 19 - 0
go/stepik/4/udp/client/client.go

@@ -0,0 +1,19 @@
+package main
+
+import (
+	"log"
+	"net"
+)
+
+func main() {
+	conn, err := net.DialUDP("udp", nil, &net.UDPAddr{IP: []byte{127, 0, 0, 1}, Port: 10001})
+	if err != nil {
+		log.Fatalln(err)
+	}
+	defer conn.Close()
+	message := "Привет!"
+	_, err = conn.Write([]byte(message))
+	if err != nil {
+		log.Println(err)
+	}
+}

+ 23 - 0
go/stepik/4/udp/server/server.go

@@ -0,0 +1,23 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"net"
+)
+
+func main() {
+	serverConn, err := net.ListenUDP("udp", &net.UDPAddr{IP: []byte{0, 0, 0, 0}, Port: 10001})
+	if err != nil {
+		log.Fatalln(err)
+	}
+	defer serverConn.Close()
+	for {
+		buf := make([]byte, 1024)
+		n, _, err := serverConn.ReadFromUDP(buf)
+		if err != nil {
+			log.Println(err)
+		}
+		fmt.Println("Получено: ", string(buf[:n]))
+	}
+}