我使用此代码在 C 客户端中从 Java 服务器接收字符串。
if( recv( to_server_socket, &reply, sizeof( reply ), MSG_WAITALL ) != sizeof( reply ) )
{
printf( "socket read failed");
exit( -1 );
}
printf( "got reply: %d\n", ntohl( reply ) );
char buf[512];
ssize_t nbytes=0;
int byte_count;
byte_count = recv(to_server_socket, buf, sizeof buf, 0);
printf("recv()'d %d bytes of data in buf\n", byte_count);
buf[byte_count] = '\0';
printf("String : %s\n",buf);
例如,当 Java 服务器发送这个 String
bZzrEcyVEmjmIf
我得到了这个结果
recv()'d buf String 中的 16 字节数据:
所以我收到了 16 个字节,但是
printf("String : %s",buf);
不要给我看任何东西。
服务器发送了这个字符串
TYvuDbbKALp3scp
我试过这段代码
int i=0;
while(i<byte_count){
printf("String : %c\n",buf[i]);
i++; recv()'d 17 bytes of data in buf
结果我有
字符串:字符串:字符串:字符串:T 字符串:Y 字符串:v 字符串:u 字符串:D 字符串:b 字符串:b 字符串:K 字符串:A 字符串:L 字符串:p 字符串:3 字符串:s 字符串:c 字符串: p