在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()
客戶
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 2014-09-27 17:55:25
那麼,我該如何解決這個問題呢? – 2014-09-27 18:24:30
您可能希望繼續閱讀直到出現錯誤(即讓客戶端關閉連接以指示它沒有更多要發送的內容) – 2014-09-27 19:07:47