Я использую этот код сервера:Как правильно прочитать из сообщения сокета (C++)
[...]
while(1){
bzero(buffer,256);
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
cout << "Message " << buffer << n << endl;
}
[...]
На стороне клиента, я, между прочим (это Java):
out.writeUTF("MOVE");
Эта строка повторяется несколько раз. Но, когда я делаю это, выход я получаю:
Message 6
Так что п является правильным, но буфер пуст.
Я также попытался:
out.writeBytes("MOVE");
И иногда я получаю это:
Message MOVE4
Но иногда я получаю это:
Message M1
Message O1
Message V1
Message E1
Итак, что я могу сделать? Огромное спасибо.
Ну, вы можете обеспечить соответствие кодировок и понять, что TCP - это служба потоковой передачи, и получение одного байта на каждый вызов чтения не является ошибкой. –