通过socket可以实现ftp、http、https、NetBIOS、Win、Iron等协议,甚至于可以实现蓝牙(蓝牙连接在.net中不被支持,是因为socket所需参数的协议簇中枚举中没有蓝牙,但可以直接通过数据,实现与蓝牙的通信)。
参考文献
TCP/IP状态:http://elf8848.iteye.com/blog/1739571
Socket五元组:https://www.2cto.com/kf/201709/678268.html
Socket IO多路复用:https://www.zhihu.com/question/32163005
端口复用/重用:http://blog.****.net/xsckernel/article/details/8159292
相关文章
- C++网络编程:select IO多路复用及TCP服务器开发
- Linux网络通信编程(套接字模型TCP\UDP与IO多路复用模型select\poll\epoll)
- socket的IO多路复用
- 嵌入式学习37-TCP并发模型-有限 2.IO模型: 1.阻塞IO: 没有数据到来时,可以让任务挂起 节省CPU资源开销,提高系统效率 2.非阻塞IO: 程序未接收到数据时一直执行 效率很低 3.异步IO 只能绑定一个文件描述符用来 读取数据 4.多路复用IO select 1.select监听的集合中的文件描述符有 上限限制 2.select有 内核层 向 用户层数据空间 拷贝 的过程,占用系统资源开销 3.select必须 轮询检测 产生 事件 的文件描述符 4.select 只能工作 在 水平触发 模式(低速模式) 无法工作 在 边沿触发 模式(高速模式) poll (监听的集合中的文件描述符有 没有上限限制) 1.poll有 内核层 向 用户层 数据空间 拷贝 的过程,占用系统资源开销 2.poll必须 轮询检测 产生 事件 的文件描述符 3.poll 只能工作在水平触发模式(低速模式) 与select相同 无法工作在边沿触发(高速模式) 3.函数接口: 1.select int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 功能: select 监听 文件描述符集合 中 是否 有文件描述编程 ready状态 select 监听 文件描述符集合 中 ,若有状态 , 将没有ready状态的T除 若无状态,将阻塞继续等待 参数: nfds: 最大文件描述符的值 +1 readfds: 读 文件描述符集合 writefds: 写 文件描述符集合 exceptfds: 其余 文件描述符集合 timeout: 等待的时长 NULL 一直等待(超时处理) 返回值: 成功 返回 文件描述符集合中 的 文件描述符个数 失败 返回 -1 void FD_CLR (int fd, fd_set *set); 功能: 将文件描述符 fd 从集合中清除
- 理解TCP Socket编程模型和I/O多路复用技术
- Python(七)Socket编程、IO多路复用、SocketServer
- socket_server源码剖析、python作用域、IO多路复用
- 黑马程序员_温习 网络编辑一 (个人笔记)摘要(网络概述---网络参考模型---网络传输要素---IP地址---端口----传输协议(UDP -- TCP)---Socket机制 )
- 【Java TCP/IP Socket】Java NIO Socket VS 标准IO Socket
- Linux网络通信编程(套接字模型TCP\UDP与IO多路复用模型select\poll\epoll)