关键是我发送了 4096 个字节,但大约只发送了 119 个字节。携带有用的信息。
100 个字节以 \r\n\r\n 结尾,因此在客户端中,当我读取 \r\n\r\n 时,我想停止从该字符串接收信息,然后重新开始。
我不知道我是否必须冲洗,或关闭插座,或其他什么...
它们是套接字 TCP。
在客户端我做:
buf details[4096];
strcpy(details,"1");
strcat(details,"10/04/12");
strcat(details,"Kevin Fire");
strcat(detils,"abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde\r\n\r\n");
nbytes_sent = send(sock,(char *)details,sizeof(details),0);
另一方面,服务器...
char buf[20];
memset(buf,'\0',20);
while(!end){
nbytes_read=recv(sclient,(char *)ress,sizeof(ress),0);
if(strcmp(ress,"1")==0){
printf("Details: %s (%i)\n",buf,nbytes_read);
while(strcmp(buf,"\r\n\r\n") != 0){
nbytes_read=recv(sclient,(char *)buf,sizeof(buf),0);
cout.flush();
printf("Details: %s (%i)\n",buf,nbytes_read);
} }
if(strcmp(buf,"\r\n\r\n")==0) printf("The End\n");
cout.flush();
}
}
我只想阅读一个新的“ress”,而不是检索其余无用的字节。
提前致谢。