当前位置: 技术问答>linux和unix
socket高手请进!可以解决吗?
来源: 互联网 发布时间:2015-04-19
本文导语: 1.使用select时,如何检测客户端是否已经关闭? 2.socket的recv中的len值应该如何设定 char buff[1024]; recv(list[j], &buff,sizeof(buff), 0); 这时如果第一次客户传来的是 abcd 则显示 abcd第二次传入为 2 去显示为 2bcd...
1.使用select时,如何检测客户端是否已经关闭?
2.socket的recv中的len值应该如何设定
char buff[1024];
recv(list[j], &buff,sizeof(buff), 0);
这时如果第一次客户传来的是
abcd
则显示
abcd第二次传入为
2
去显示为
2bcd
请问这个长度如何设定,谢了
linux或aix下。
2.socket的recv中的len值应该如何设定
char buff[1024];
recv(list[j], &buff,sizeof(buff), 0);
这时如果第一次客户传来的是
abcd
则显示
abcd第二次传入为
2
去显示为
2bcd
请问这个长度如何设定,谢了
linux或aix下。
|
1.select 调用中,如果你的套接字被设为读测试,那么当对方close时,则读准备好,select返回,此时调用read,则返回0,表示对方已关闭;若设为写测试,则当对方close时,则第一次写正常,是不能判断对方一关闭的,再写的时候会返回错误,且收到信号SIGPIPE。上面用close,因为用shutdown是可以只关闭读或写的,一般大家都用close,所以就这样了。
2.recv的返回值为实际收到的字节数。
2.recv的返回值为实际收到的字节数。
|
strlen(buff)+1
每次用strcpy给buff赋值就ok了
hope i can help u! good luck!
每次用strcpy给buff赋值就ok了
hope i can help u! good luck!