gpt4 book ai didi

c - 收到套接字 c 字节,但我无法打印字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:19 25 4
gpt4 key购买 nike

我使用此代码在 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 16 bytes of data in buf String :

所以我收到了 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

结果我有

String : String : String : String : T String : Y String : v String : u String : D String : b String : b String : K String : A String : L String : p String : 3 String : s String : c String : p

最佳答案

你确定你的字符可以打印吗?

使用类似这样的东西来查看你收到了什么:

for (int i = 0; i < byte_count; i++)
{
printf("%02x ", (unsigned int) buf[i]);
}
printf("\n"); // flush stdout

关于c - 收到套接字 c 字节,但我无法打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com