基于TCP面向连接的socket编程。运行出错,一直出现 “烫”字。用的vs2010

2024-11-26 00:46:42
推荐回答(5个)
回答1:

char RecvBuf[100];
recv(SocketClient,RecvBuf,100,0);//接收服务器数据
printf("%s\n",RecvBuf);
也许没有接收到数据,所以在printf()输出时输出了没有初始化的字串。
你可以试一下:
char RecvBuf[100]={"\0"};
recv(SocketClient,RecvBuf,100,0);//接收服务器数据
printf("%s\n",RecvBuf);

回答2:

char RecvBuf[100];
recv(ScoketConn,RecvBuf,100,0);//step5 接收数据
printf("%s\n",RecvBuf);
问题出在这里,字符串的显示,字符串末尾必须以‘\0'结束,否则显示会出错。
这样试试:
char RecvBuf[101];
recv(ScoketConn,RecvBuf,100,0);//step5 接收数据
RecvBuf[100] = '\0';
printf("%s\n",RecvBuf);

回答3:

recv(ScoketConn,RecvBuf,100,0);//step5 接收数据
两种修改办法:
1,memset(buff,0,sizeof(buff)); 将buff全部置为0
2,int n = recv(...); buff[n] = '\0';

回答4:

你用的是两台电脑么,如果是,请更换客户端IP地址为服务器端IP!

回答5:

数组接收的时候,后面是空的,等于说数组要接受十个,你只收到九个,就会有烫。