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);
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);
recv(ScoketConn,RecvBuf,100,0);//step5 接收数据
两种修改办法:
1,memset(buff,0,sizeof(buff)); 将buff全部置为0
2,int n = recv(...); buff[n] = '\0';
你用的是两台电脑么,如果是,请更换客户端IP地址为服务器端IP!
数组接收的时候,后面是空的,等于说数组要接受十个,你只收到九个,就会有烫。