《Socket_tcp多事务处理程序框架》.pdf
文本预览下载声明
作者:黄锦威 Author:Wilson e-Mail:wilsonwong@126.com QQ:106365089 QQ 群
Socket TCP 多事务处理程序框架
本文档是关于 Socket 通信中多事务处理的程序框架案例.全文分为四部分,
第一部分:Socket 通信事务处理中的常见问题描述;
第二部分:通信事务处理的协议定义;
第三部分:程序框架原理描述;
第四部分:代码详解
第一部分:Socket 通信事务处理中的常见问题描述
所谓Socket 就是一组网络编程接口,两台计算机通过网络接口传输数据,就像同一台电脑的管道通信一样。Socket
有两种工作模式:面向连接的 TCP 和无连接的UDP。面向连接就是在双方通信前先建立一个连接,然后才能彼此通信,
就像打电话一样,想通话必须先拨号;无连接只要知道对方的IP 端口号,就可以直接给对方发送数据,就像邮寄,只
要知道对方的门牌号码就可以投递了,而不管对方在不在家。本文主要讨论面向连接的 TCP 模式,至于 UDP 模式另文
讨论。两种模式简单模型如下图所示(如无特别说明,以下所讨论都针对 TCP):
服务器端 客户端 服务器端 客户端
TCP UDP
Socket() Socket() Socket() Socket()
bind() bind()
请求数据
listen()
recvfrom() sendto()
事务处理
accept()
应答数据
sendto() recvfrom()
阻塞,等待连接 建立连接
Connect()
Close() Close()
请求数据
recv() send()
事务处理
应答数据
send() recv()
Close() Close()
网络通信双方角色上分为服务器端与客户端:
服务器端处理流程:建立套接字(socket()),套接字可以理解为文件打开符号绑定某IP 地址和端口号(bind()),
客户端将连接此 IP 地址和端口号建立监听(listen())接受客户端连接请求(accept()),此函数一直阻塞直到
有客户端连接为止接收客户端的数据请求(recv()),此函数一直阻塞直到接收到数据为止事务处理向客户端发
送应答数据(send())关闭服务器端 socket.
客户端处理流程:建立套接字(socket())连接服务器(connect())向服务器发送请求数据(send())等待服
务器应答数据(recv())关闭客户端 socket.
以上流程是一个单一事务流程,无论是服务器端还是客户端,所
显示全部