Golang: простой сервер TCP и TCP-клиент
Golang - это новый язык программирования. Это компилируемый язык программирования, который работает на многих платформах; он обеспечивает расширенный доступ к системе и памяти в отличие от других языков веб-программирования. Существует несколько легко доступных пакетов, которые расширяют функциональность Go без создания своих велосипедов.
Чтобы скомпилировать и запустить программу, сначала установите golang. Затем создайте эти два файла:
ТСР-server.go:
package main import "net" import "fmt" import "bufio" import "strings" // требуется только ниже для обработки примера func main() { fmt.Println("Launching server...") // Устанавливаем прослушивание порта ln, _ := net.Listen("tcp", ":8081") // Открываем порт conn, _ := ln.Accept() // Запускаем цикл for { // Будем прослушивать все сообщения разделенные \n message, _ := bufio.NewReader(conn).ReadString('\n') // Распечатываем полученое сообщение fmt.Print("Message Received:", string(message)) // Процесс выборки для полученной строки newmessage := strings.ToUpper(message) // Отправить новую строку обратно клиенту conn.Write([]byte(newmessage + "\n")) } }
И затем tcp-client.go:
package main import "net" import "fmt" import "bufio" import "os" func main() { // Подключаемся к сокету conn, _ := net.Dial("tcp", "127.0.0.1:8081") for { // Чтение входных данных от stdin reader := bufio.NewReader(os.Stdin) fmt.Print("Text to send: ") text, _ := reader.ReadString('\n') // Отправляем в socket fmt.Fprintf(conn, text + "\n") // Прослушиваем ответ message, _ := bufio.NewReader(conn).ReadString('\n') fmt.Print("Message from server: "+message) } }
Сначала запустите сервер, go run tcp-server.go. Затем запустите клиент go run tcp-client.go. Затем вы можете ввести сообщение в клиенте, и сервер будет использовать его и отправить обратно клиенту.
Эта программа является очень простым примером и не включает обработку ошибок. Но вы получите общее представление о том, как начать писать простую программу Golang, которая создала TCP-сервер и клиент.