Я отправляю следующие данные с сервера:
31 37 38 33 00 00 00 00 00 00 00 33 34 37 78 35
74 32 71 39 37 34 79 35 74 76 38 35 67 6e 32 6d
на стороне клиента с помощью winsock2.h:
...
int recvbuflen = 32;
char *tmpBuff = new char[recvbuflen];
int bytesRcvd = recv(conn_socket, tmpBuff, recvbuflen, 0);
...
А сейчас:
bytesRcvd = 32;
tmpBuff = {31 37 38 33 33 34 37 78 35 74 32 71 39 37 34 79 35 74 76 38 35 67 6e 32 6d} in hex
в основном recv() пропускает символы '\0' во время записи буфера приема
Как получить все данные со всеми символами '\0'?
send
и код послеrecv
, выводящий вывод. - person Dave Rager   schedule 03.04.2013bytesRcvd = 32
, но полученные байты, хранящиеся вtmpBuff
, меньше 32? Я не думаю, чтоrecv()
на самом деле имеет какое-то значение между нулевыми и ненулевыми байтами. Я думаю, вы делаете что-то еще не так. - person Javid   schedule 04.04.2013