1. Server端-socket/bind/listen/accept/read

	socket(AF_INET, SOCK_STREAM, 0);

	//指定端口,内核将端口上的数据转发给该socket
bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr); //listen函数把一个未连接的套接口转换成一个被动套接口,指示内核应接受指向该套接口的连接请求
//相应套接口排队的最大连接个数,等待accept的请求
listen( listenfd,listennum); //从listen队列中返回下一个已完成的连接(client),无则阻塞直至返回
accept(listenfd, (struct sockaddr *)&cliaddr, &clilen); //读写socket
read(sockfd,buf,1000);
write(sockfd,buf,n);

2. Client端-socket/connect/write

	socket(AF_INET, SOCK_STREAM, 0);

	//3次握手,建立同server的连接
connect(clifd, (struct sockaddr *)&servaddr, sizeof(servaddr)); write(sockfd,sendbuf,strlen(sendbuf));

3. IO复用

3.1 Select指定事件发生时唤醒

    int select (int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptionset, const struct timeval *timeout);
函数允许进程指示内核等待唤醒多个事件中的任何一个发生,并在有一个或多个时间发生或经历一段指定的时间后才唤醒它。
例如可以调用select,告知内核仅在下列情况发生时才返回:
♦集合{1,4,5}中的任何描述字准备好读,或
♦集合{2,7}中的任何描述字准备好写,或
♦集合{1,4}中的任何描述字有异常条件待处理,或
♦已经经历了指定时间。

最新文章

  1. 小技巧-a标签去除蓝圈
  2. js中的with语句
  3. .NET程序员爱上网站[整理]
  4. UVA 624 (0 1背包 + 打印路径)
  5. 编写一个程序实现strlen函数的功能
  6. _tcscat在Debug和Release根据问题
  7. 【Android Developers Training】 52. 打印照片
  8. 小解系列-自关联对象.Net MVC中 json序列化循环引用问题
  9. GIS之家小专栏
  10. Winserver-默认以管理员运行程序
  11. 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
  12. 52ABP模板 ASP.Net Core 与 Angular的开源实例项目
  13. 执行shell文件是,提示chmod: 更改'./shell1.sh' 的权限: 不允许的操作。
  14. oracle使用with as提高查询效率
  15. AtCoder Regular Contest 103 E Tr/ee
  16. mysql5.5 for linux 安装(转)
  17. ES6基础三(对象)
  18. 初级安全入门—— WEBshell与文件上传漏洞
  19. Redux系列02:一个炒鸡简单的react+redux例子
  20. 【Python】【Web.py】python web py入门-5-请求处理(下)

热门文章

  1. MODBUS TCP和MODBUS RTU的差别
  2. python 基础 列表 小例子
  3. Spring, Hibernate and Oracle Stored Procedures
  4. html文档树形结构图
  5. [51nod]多重背包模板
  6. 在PCL中如何实现点云压缩(1)
  7. vim加亮和自动缩进
  8. BOX (UVA-1587) 比较代码书写上的差距
  9. 【TMF eTOM】eTOM的概念和术语
  10. vue -- 正确的引入jquery