Как выполнить цикл до тех пор, пока * ipconn.Read () не прочитает все данные, отправленные в него, в течение - PullRequest
0 голосов
/ 16 июня 2019

Я отправлял некоторые данные, используя метод * ipconn.Write в go, но, похоже, * ipconn.Read () может читать только 20 байтов за раз

здесь сервер отправляет данные

ln, err := net.Listen("tcp", "localhost:8888")
conn, err := ln.Accept()
tmp := make([]byte,10000)
tmp = []byte("abcdefghijklmnopqrstuvwxyz")
conn.Write(tmp)

вот клиент, получающий данные

conn, err := net.Dial("tcp", "localhost:8888")
data := make([]byte, 100000)
conn.Read(data)
fmt.Println(string(data)) // prints only first 20 chars

Если я снова позвоню conn.Read (data), я получу еще 20 символов

Есть ли способ прочитать все данные илицикл до тех пор, пока соединение не будет закрыто?

1 Ответ

0 голосов
/ 18 июня 2019

ioutil.ReadAll будет читать все данные из потока tcp.Будьте осторожны, так как он не вернется, пока соединение не будет закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...