Я немного смущен тем, как делать клиенту для отправки строки на сервер, как в Go. Когда сервер работает ioutil.ReadAll (conexao) все останавливается.Связь между клиентом и сервером в Go
Сервер
conexao, _ := listener.Accept()
fmt.Printf("Conexão aceita %s\n", conexao.RemoteAddr())
frase, _ := ioutil.ReadAll(conexao)
fmt.Println("Frase recebida")
convertida := strings.ToUpper(string(frase))
conexao.Write([]byte(convertida))
conexao.Close()
Client
conexao, _ := net.DialTCP("tcp", nil, enderecoTCPServidor)
fmt.Println("Conexão Estabelecida")
conexao.Write([]byte("Gato de Botas!"))
fmt.Println("Frase enviada")
maiuscula, _ := ioutil.ReadAll(conexao)
fmt.Println("Maiuscula ",string(maiuscula))
ReadAll читает от conexao до ошибки или EOF и возвращает данные, которые он читает. Если нет ошибки или EOF, она будет блокироваться навсегда. – siritinga
Итак, как я могу решить эту проблему? –
Возможно, вы захотите продолжить чтение до тех пор, пока не появится ошибка (т. Е. Клиент закрывает соединение, чтобы сигнализировать, что ему больше нечего отправлять) –