Задать вопрос

Как корректно завершить чтение bufio.Scaner()?

Есть клиент и сервер. Клиент отправляет JSON вот так:
writer := bufio.NewWriter(conn)
JSONmessage = []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
writer.Write(JSONmessage)


А сервер читает вот так:
for {
		scanned := scanr.Scan()
		if !scanned {
			if err := scanr.Err(); err != nil {
				log.Println(err, conn.RemoteAddr())
				return err
			}
		}
		currentMessage := ParseJSON(scanr.Bytes())


Проблема в том, что сервер не понимает, когда заканчиваются данные, переданные клиентом и ждёт до тех пор, пока клиент не закроет соединение либо пока буфер не переполнится. В случае со строками достаточно было передавать символ конца строки "\n", а что делать в случае с []byte - непонятно.
  • Вопрос задан
  • 126 просмотров
Подписаться 4 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы