当前位置: 技术问答>linux和unix
linux下还有数据没有recv完,能send数据吗?
来源: 互联网 发布时间:2016-09-29
本文导语: 服务器端socket,用recv接收数据,先接收前8个字节,发现前8个字节内容就错了,于是放弃继续接收剩下的数据,返回告知内容错误的报文,调用send函数,结果发现客户端recv时出错。 为什么呢? socket接收数据时,需...
服务器端socket,用recv接收数据,先接收前8个字节,发现前8个字节内容就错了,于是放弃继续接收剩下的数据,返回告知内容错误的报文,调用send函数,结果发现客户端recv时出错。
为什么呢?
socket接收数据时,需要等待发送缓冲区的数据全部发送完毕,才能recv,没说发送数据也必须要等到接收完毕才能发送啊。
到底是怎么回事呢?
谢谢。
代码:
server:
sockfd = socket();
bind();
linsten();
clisock = accept();
read(clisock, buf, 8);//客户端发送的远不止8字节数据
if (atoi(buf)
为什么呢?
socket接收数据时,需要等待发送缓冲区的数据全部发送完毕,才能recv,没说发送数据也必须要等到接收完毕才能发送啊。
到底是怎么回事呢?
谢谢。
代码:
server:
sockfd = socket();
bind();
linsten();
clisock = accept();
read(clisock, buf, 8);//客户端发送的远不止8字节数据
if (atoi(buf)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!