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-сервер и клиент.