我的服务器 recv() 来自客户端的数据包并且必须显示它。
问题是它没有显示正确的数据
这是代码:
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult > 0) {
for ( int i = 0; i < iResult; i++ ) {
printf( "%02x ", buf[i] );
}
printf( "\n" );
// return "cc cc cc cc cc cc cc cc cc cc"
// correct return "0A 00 2C 01 29 00 0D 00 B4 01"
当客户端连接服务器显示cc cc cc cc cc cc cc cc cc cc
但这是不对的
它应该是0A 00 2C 01 29 00 0D 00 B4 01
更新
#define DEFAULT_BUFLEN 512
char recvbuf[DEFAULT_BUFLEN];
int recvbuflen = DEFAULT_BUFLEN;
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult > 0) {
for ( int i = 0; i < iResult; i++ ) {
printf( "%02x ", recvbuf[i] );
}
printf( "\n" );
// return "0A 00 2C 01 23 00 0c 00 ffffffB3 01"
// correct return "0A 00 2C 01 23 00 0c 00 B3 01"
现在数据包上有额外的 ffffff,即使我只有 10 个字节。