中易网

recv函数怎么设置接收缓冲区的长度

答案:2  悬赏:10  
解决时间 2021-03-02 21:15
recv函数怎么设置接收缓冲区的长度
最佳答案
1. 在执行recvfrom(socket,recvbuf,strlen(recvbuf),0,(SOCKADDR*)&addrFrom,&len);
2. 之前,recvbuf里面的值根本还不确定,strlen(recvbuf)怎么会计算得对呢.
全部回答
不一定的。 tcp是流式套接字,你所面对的只是一个字符流。它只能保证各个字节按顺序到达,不会乱序。至于分几次,每次几个,说不准。 总而言这,tcp不是“面向消息”的。你如果需要基于消息的机制,只能自己制定应用层的协议(比如通过长度或者特殊的信息来标记消息的开始和结束),然后自己写代码进行封装。 假如send一次,是不是会有情况要recv两次才能收全? recv的缓冲区足够大。 recv有返回值,为每次收到长度, 你收的时候,判断一下,有没有收全, 至于几次不好说, tcp出错的话会重发的 tcp是不分包的 所以你得循环来收 最好加个长度 int ilen=50 int curlen=0; while((curlen=recv(...,ilen))>0){ ilen-=curlen; if(ilen<=0) break; } tcp有可能粘包,所接受端要做分包处理。upd就不用了这样做了。 tcp有可能粘包,所接受端要做分包处理。udp就不用了这样做了 假如send一次,是不是会有情况要recv两次才能收全? recv的缓冲区足够大。 会的。 也可能两次发的一次全收到。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
育才书刊文具店地址有知道的么?有点事想过去
水电试压为什么第一次达到1.0 正常 第二次的
公司不让休探亲假,根据新劳动法公司需要补偿
在线等,消防喷淋三通,那种有那种没有?
惠东县大岭镇茗教经济联合社地址在什么地方,
微信上叫滴滴,滴滴和出租车一样吗??
PHOTOSHOP里哪个功能是把图片上的字抠掉的?
5月份光大会展中心展会信息
考研中教育学为B类 是什么意思
资产评估与管理和市场开发与营销哪个专业好?
阿贵呼硕地址在什么地方,想过去办事
星河战队的臭虫用什么做的
重庆2011年会计从业资格考试用的教材是什么出
公布采购经理人指数 PMI 有哪些意义
一个重量为10N的物体,在15N的水平拉力的作用
推荐资讯
我刚烫完纹理 不知道平时怎么打理?
琴哥sunny身高。大家觉得她的身高是多少 一直
足球后腰和前腰是什么意思
万家红布艺我想知道这个在什么地方
历史高手分析下,蒋介石何以成功逃往台湾而未
我很痛苦,因为我不停地想自己已经不是处女
要得炸鸡怎么去啊,有知道地址的么
运动完体重掉了半斤,是怎么回事?
ravmon.exe---应用程序错误 请大虾给看看
请问哪些处理器是伪双核的呢?
白水泥都用是什么部位?
这几件外套那件好看?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?