同步/异步、阻塞/非阻塞

  阻塞/非阻塞、同步/异步,每次被问到这个问题都感觉自己清楚但是又说的不好,知道他们两个有区别但当真正去描述的时候又说不出来他俩的区别,准备特别写一篇描述一下,加深一下自己的印象。IO 概念区分四个相关概念:同步(Synchronous)异步( Asynchronous)阻塞( Blocking

#socket编程  

制作 HTTP 服务器端

HTTP概要HTTP(HyperTextTransferProtocol,超文本传输协议)  HTTP是HypertextTransferProtocol的缩写,Hypertext(超文本)是可以根据客户端请求而跳转的结构化信息。例如,通过浏览器访问图灵社区的主页时,首页文件将传输到浏览器并展现给大

#socket编程  

epoll反应堆

水平触发于边沿触发  epoll对文件描述符的操作有两种模式:LT(leveltrigger)和ET(edgetrigger)。LT模式是默认模式,LT模式与ET模式的区别如下:LT模式:当epoll_wait检测到描述符事件发生并将此事件通知应用程序,应用程序可以不立即处理该事件。下次调用epol

#socket编程  

I/O 复用服务器

  多路I/O转接服务器也叫做多任务I/O服务器。该类服务器实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件。  主要使用的方法有三种:selectpollepoll多进程服务器端的缺点和解决方法  为了构建并发服务器,只要有客户端连接请求就会创建新进程。这的确是

#socket编程  

并发服务器的三种实现模型(多线程/多进程)

  服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型  在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:循环服务器:服务

#socket编程  

优雅的断开套接字的连接

基于 TCP 的半关闭  TCP 的断开连接过程比建立连接更重要,因为连接过程中一般不会出现大问题,但是断开过程可能发生预想不到的情况。因此应该准确掌控。所以要掌握半关闭(Half-close),才能明确断开过程。单方面断开连接带来的问题  Linux 和 Windows 的 closesocket

#socket编程  

C/S模型的UDP通信分析

UDP简单介绍  传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。  相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护

#socket编程