套接口基本操作
来源:互联网 发布:android php 编辑:程序博客网 时间:2024/04/30 02:04
阻塞TCP套接口读操作:从内核发送缓冲区中读到数据就返回,有可能是单个字节。如果什么数据也没有,则阻塞在那里等待数据,除非对方关闭连接。
阻塞TCP套接口写操作:写操作会将数据从应用缓冲区拷贝到内核缓冲区,如果内核缓冲区满了,则阻塞。写操作返回了并不代表对方已经收到数据了,仅仅是表示数据拷贝进了内核缓冲区,可能还没有发送。
非阻塞TCP套接口读操作:没有数据可读,立刻返回。
非阻塞TCP套接口写操作:发送缓冲区满,则立即返回。发送缓冲区还有部分空,则拷贝部分数据,写操作的返回值就是拷贝进缓冲区的数据。
阻塞UDP套接口读操作:阻塞在那里,直到读到某个数据报。读缓冲区的分配长度要比期望收到的数据报的最大长度加1,这样如果收到长度等于缓冲区的数据报,则认为接收到了过大的数据报,直接丢弃。
UDP套接口没有真正的写缓冲区,发送的时候只是不同的协议层加上相应的头部,一般阻塞方式写操作不会阻塞,阻塞住了则是因为其他原因。
select函数的可读、可写、异常,三个参数只赋值一个。select返回即可读又可写,则表示套接口出错。返回-1表示错误,有可能是被信号中断了。
select函数可读描述字就绪条件:
a. 接收缓冲区中可读数据大于等于接收缓冲区的低潮标识--默认是1。也就是说一般TCP套接口,只要缓冲区中有数据可读就返回。UDP套接口,只要有数据报可读就返回。
select函数可写描述字就绪条件:
a.TCP套接口发送缓冲区中空闲的空间大于发送缓冲区的低潮标志-默认1024,也就是说,阻塞套接口select可写,一般仅仅表示发送缓冲区中有1024字节空闲,如果发送的数据大于1024,则还是可能会阻塞。如果该套接口不需要连接,也就是说UDP套接口select总是可写。
- 套接口基本操作
- 基本UDP套接口编程
- 基本TCP套接口编程
- 基本UDP套接口编程
- 基本TCP套接口编程
- 基本TCP套接口编程一
- 基本TCP套接口编程一
- 基本TCP套接口编程函数
- 第四章:基本TCP套接口编程
- 《unix网络编程》基本套接口编程
- 基本的tcp套接口编程
- LUCI的几套操作接口总结
- 文件操作的几套接口
- 套接口
- 基本TCP套接口编程 (http://www.fanqiang.com)
- 基本TCP套接口编程 (http://www.fanqiang.com)
- 第8章基本UDP套接口编程
- unix网络编程之基本套接口编程
- MySQL中关于自增长主键的获取
- iOS开发教程:构建多视图应用程序
- C++内存对象大会战
- C++内存使用机制基本概念详解 .
- C++ 对象的内存布局(上) .
- 套接口基本操作
- C#与Matlab混合编程的几种方式
- C++ 对象的内存布局(下) .
- myeclipse中修改servlet的模板代码
- MASM写的第一个Win32 窗口程序
- Mysql数据库表的自增主键ID号乱了,需要重新排列。
- 二叉树的最长路径
- 有关触发器的问题-一次插入多条
- 如何在数据库中创建索引,提高查询速度