当前位置:  技术问答>linux和unix

求教网络编程read函数的问题

    来源: 互联网  发布时间:2016-07-08

    本文导语:  求教:在阅读W.Richard Stevens著的Unix网络编程卷一中tcp协议实现的回射程序遇到的困惑 在客户端输入: hellon 注意此时并没有输入ctrl+D 'n'表示回车符 回射程序还没有使用select函数修正,服务器端将直接调用read(fd,read_...

求教:在阅读W.Richard Stevens著的Unix网络编程卷一中tcp协议实现的回射程序遇到的困惑


在客户端输入:
hellon
注意此时并没有输入ctrl+D
'n'表示回车符


回射程序还没有使用select函数修正,服务器端将直接调用read(fd,read_buf,sizeof(read_buf));
默认情况下,网络套接口描述符应该是阻塞模式
如果read_buf长度为1024
read函数是否一直阻塞,直到读取1024个字符后才返回,还是读取到"hellon"后,马上返回?

应该是马上返回,不会等到读取到1024个字符,但是想不通为什么?
既然是阻塞模式而且没有读到文件结束符,read函数怎么可以返回呢?
难道对于阻塞模式的网络套接字read有特殊处理吗?

困惑很长时间了!!!

|
服务端阻塞,是当文件句柄不可读时阻塞,不会根据你传的缓冲区大小阻塞。
你的客户端一次只发了一行数据,所以服务端就只能读到一行数据。
应该是你的客户端程序在读到回车时就做了一次write。

|
阻塞只表示没有读到数据时不返回,不代表要读多少数据才返回

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:知道当前时间,如何得到N天前的时间 ?
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • Web服务器/前端 iis7站长之家
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3