原帖由 oract666 于 2008-9-5 19:33 发表
我send 后打印了send函数的返回值,发现返回值都是完整的数据包长度
在recv后也打印了recv的函数返回值,发觉其中有好几个都小于完整数据包的长度
我send和recv'的第三个参数len都是固定的完整数据包长 ...
原帖由 oract666 于 2008-9-5 20:00 发表
请问循环是怎么使用? 这样可以吗:
while(1)
{
bzero(&myinfo,sizeof(info));
ircv=recv(connfd,&myinfo,sizeof(myinfo),0);
while( (ircv>0) && (ir ...
原帖由 tyc611 于 2008-9-5 20:27 发表
myinfo是结构体名?
如果是,将其转换为char*再与接收到的字节数相加
也就是ircv=ircv+recv(connfd,(char*)&myinfo+ircv,sizeof(myinfo)-ircv,0);
原帖由 oract666 于 2008-9-5 20:48 发表
那就是说为了安全,send最好也要判断返回值大小和数据包的比较结果?
我现在有些应用根本没有判断就发走了,但是数据量很小一般几十个字节,MSG_WAITALL 参数同样适用于send吗?
呵呵,都是平时用tux ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |