socket高手请进!可以解决吗?

hjleochen 2003-09-16 07:07:19
1.使用select时,如何检测客户端是否已经关闭?
2.socket的recv中的len值应该如何设定
char buff[1024];
recv(list[j], &buff,sizeof(buff), 0);
这时如果第一次客户传来的是
abcd
则显示
abcd第二次传入为
2
去显示为
2bcd
请问这个长度如何设定,谢了

linux或aix下。
...全文
27 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
klmylian 2003-09-16
  • 打赏
  • 举报
回复
1.select 调用中,如果你的套接字被设为读测试,那么当对方close时,则读准备好,select返回,此时调用read,则返回0,表示对方已关闭;若设为写测试,则当对方close时,则第一次写正常,是不能判断对方一关闭的,再写的时候会返回错误,且收到信号SIGPIPE。上面用close,因为用shutdown是可以只关闭读或写的,一般大家都用close,所以就这样了。
2.recv的返回值为实际收到的字节数。
wangjm02 2003-09-16
  • 打赏
  • 举报
回复
strlen(buff)+1
每次用strcpy给buff赋值就ok了
hope i can help u! good luck!

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧