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下。
...全文
12 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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!
  • 打赏
  • 举报
回复
相关推荐
发帖
Linux/Unix社区
加入

2.1w+

社区成员

Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
申请成为版主
帖子事件
创建了帖子
2003-09-16 07:07
社区公告
暂无公告