永发信息网

关于socket编程中的for(;;)有什么作用呢

答案:3  悬赏:0  手机版
解决时间 2021-03-15 12:58
这是服务器端的一段语句,不知道这个for的空循环用来干什么,是不是用来多次发送,接收,另外想问问,发送接收时,默认情况下,有超时吗
for(;;)

{

if(send_str(sock,"OK")<=0||recv_str(sock,g_buf,sizeof(g_buf))<=0)

{

printf("%s error or disconnected,socket is closing...\n",prompt);

close(sock);

return 0;

}

printf("%s>%s\n",prompt,g_buf);

}

}
最佳答案
意思是一直发送。直到发送不成功
看见那个if(send_str(sock,"OK")<=0||recv_str(sock,g_buf,sizeof(g_buf))<=0)没。也就是说如果发送成功就接收,如果接收成功就重新来一遍,直到发送或者接收失败。

这很有可能使用程序死在那。你说的超时,要看你的是同步还是异步,如果同步用超时一说,如果是异步就只能主动查看数据是否到来。
有没有超时就要看是套接字是同步还是异步的,同步的有(时间是无限长,相当于阻塞),可以设置超时间。异步的没有
全部回答
原型是extern void *memset(void *buffer, int c, int count) buffer为指针或是数组,c是赋给buffer的值,count是buffer的长度. 这个函数在socket中多用于清空数组. 如:原型是memset(buffer, 0, sizeof(buffer))
是用来重复发送和接收数据,send和recv的返回值是发送或接收的字节数,如果失败,返回值<=0,就关闭socket 有超时的,多久忘了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国电信单集营业厅在什么地方啊,我要过去处
求√(1996*1997*1998*1999+1) 的值
022 2763 0965是天津哪的电话
紫金街道综治工作中心接待大厅我想知道这个在
街道上,灯都亮了.扩句
多人播讲的有声修仙小说排行榜
电阻式保险丝烧坏了能否用铜丝替换
如何制作书包的流程
空调制冷维修储液器结霜是什么原因
青海福利印务有限公司地址在哪,我要去那里办
髌骨骨折手术后7个月了钉子移位顶着皮肤了怎
上海百强高质干洗地址在什么地方,我要处理点
鸡蛋冻了,还能吃吗?
龙威电脑在什么地方啊,我要过去处理事情
房屋买卖合同中混合房产是什么意思?
推荐资讯
求法医秦明超清无删减全集
东台市畜牧兽医服务中心怎么去啊,有知道地址
两万毫安充电宝接停车监控可以用多久
一般违法行为与犯罪行为有何异同点
西藏有没有彼岸花
白居易 长恨歌什么时候学
女人做销售怎么样?
顺丰快递从山东威海到沈阳西丰要多久
uc为什么不能下载视频了,只能在线观看,尤其
女生学药物分析与工程造价哪个好
菜花洞这个地址在什么地方,我要处理点事
求云雀恭弥受的综漫或家教同人小说文包。 禁
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?