winsock文件传输问题
最近做winsock的一点练习 遇到一个问题。
客户端发送文件名时,假设是123.txt, 但是服务器端只能收到123. 后面的txt被算成文件内容了
Client:
fp = fopen("D:\\123.txt", "rb");
if(!fp)
exit(0);
char *name="123.txt";
len = send(client,name,strlen(name) ,0);//printf出来的len是7 name是123.txt
Server:
char recvbuf[1024] = "";
recv( server, recvbuf, sizeof(1024), 0 );//recvbuf是123.
求大神帮忙啊
[解决办法]
接收的时候,一次接收到的字节数并不一定等于发送的字节数,所以在接收时应该判断是否接收完整,如不完整,就要继续接收,所以在通信协议中要能判断是否接收下来完整的数据,要么先发送数据的长度,再发送数据,要么在数据中加入特殊字符,来表示数据结束。