一种基于Socket连接的多通道双工通讯方法

文档序号:9399287阅读:565来源:国知局
一种基于Socket连接的多通道双工通讯方法
【技术领域】
[0001]本发明属于通讯技术领域,具体涉及一种基于Socket连接的多通道双工通讯方法。
【背景技术】
[0002]现阶段,服务器端和客户端之间的Socket连接建立过程为:
[0003](I)服务器端侦听某一端口,等待客户端的Socket连接请求;
[0004](2)客户端向服务器端发送Socket连接请求,其中,该Socket连接请求携带有客户端的地址和端口号;
[0005](3)当服务器端监听到客户端所发送的连接请求时,服务器端创建一个新的线程,通过线程管理服务器端和客户端正式建立的Socket连接,服务器端在建立Socket连接后,客户端与服务器端即可进行基于TCP/IP的通讯。
[0006]然而,在Socket通讯类软件研发的过程中,需要频繁的针对Socket连接进行创建、使用、销毁等操作;而每建立一个Socket连接,服务器端均需要启动一个线程,对该Socket连接进行管理,由此导致Socket连接的管理效率低下,占用了服务器端大量的CPU和内存等资源。

【发明内容】

[0007]针对现有技术存在的缺陷,本发明提供一种基于Socket连接的多通道双工通讯方法,可有效解决上述问题。
[0008]本发明采用的技术方案如下:
[0009]本发明提供一种基于Socket连接的多通道双工通讯方法,包括以下步骤:
[0010]步骤1:分别创建适配器、服务器端Socket容器和客户端Socket容器;所述适配器分别与所述服务器端Socket容器和所述客户端Socket容器连接;
[0011]其中,所述适配器用于记录需建立Socket连接的服务器端地址和客户端地址的匹配关系;
[0012]所述服务器端Socket容器用于存储已被所述适配器记录匹配关系的服务器端套接字,其中,所述服务器端套接字包含所述服务器端地址;
[0013]所述客户端Socket容器用于存储已被所述适配器记录匹配关系的客户端套接字,其中,所述客户端套接字包含所述客户端地址;
[0014]步骤2,每当所述适配器已记录服务器端地址和客户端地址的匹配关系之后,在已建立匹配关系的服务器端创建服务器端发送队列和服务器接收队列;
[0015]在已建立匹配关系的客户端创建客户端发送队列和客户端接收队列;
[0016]步骤3,所述适配器对所述服务器端发送队列和所述客户端发送队列进行监听,每当监听到所述客户端发送队列中存在所述客户端添加的待发送客户端消息时,执行步骤4 ;每当监听到所述服务器端发送队列中存在所述服务器端添加的待发送服务器端消息时,执行步骤5 ;
[0017]步骤4,所述适配器对所述待发送客户端消息进行解析,提取到该待发送客户端消息所携带的客户端地址和服务器端地址;
[0018]然后,所述适配器判断提取到的客户端地址和服务器端地址是否已建立匹配关系,如果没有,则结束流程;如果有,则所述适配器对所述服务器端Socket容器进行查找,得到与本次匹配关系对应的服务器端套接字;所述服务器端套接字将待发送客户端消息发送到对应的服务器端接收队列,使对应的服务器端通过读取自身的服务器端接收队列,接收到来自客户端的消息;
[0019]步骤5,所述适配器对所述待发送服务器端消息进行解析,提取到该待发送服务器端消息所携带的客户端地址和服务器端地址;
[0020]然后,所述适配器判断提取到的客户端地址和服务器端地址是否已建立匹配关系,如果没有,则结束流程;如果有,则所述适配器对所述客户端Socket容器进行查找,得到与本次匹配关系对应的客户端套接字;所述客户端套接字将待发送服务器端消息发送到对应的客户端接收队列,使对应的客户端通过读取自身的客户端接收队列,接收到来自服务器端的消息。
[0021]优选的,步骤I中,所述适配器用于记录需建立Socket连接的服务器端地址和客户端地址的匹配关系,具体指:
[0022]在每台服务器端部署唯一对应的链接监听器,通过所述链接监听器对服务器端的地址进行监听,当监听到服务器端接收到来自客户端的Socket连接建立请求时,所述链接监听器对该Socket连接建立请求进行解析,获得客户端地址以及服务器端地址;
[0023]然后,所述链接监听器将所获得的客户端地址以及服务器端地址发送给所述适配器;
[0024]所述适配器记录需建立Socket连接的服务器端地址和客户端地址的匹配关系。
[0025]优选的,所述客户端地址指客户端IP地址和/或端口号;所述服务器端地址指服务器端IP地址和/或端口号。
[0026]优选的,还包括:
[0027]创建Socket清理器;所述Socket清理器轮询所述服务器端Socket容器和所述客户端Socket容器,将所述服务器端Socket容器和所述客户端Socket容器中生命周期已超期的Socket连接所对应的套接字删除。
[0028]本发明的有益效果如下:
[0029]本发明提供的基于Socket连接的多通道双工通讯方法具有以下优点:
[0030]通过简单的方式即可实现服务器端和客户端的多通道双工通讯,具有Socket连接的管理效率高、资源占用量少的优点。
【附图说明】
[0031]图1为本发明提供的基于Socket连接的多通道双工通讯方法的流程示意图。
【具体实施方式】
[0032]以下结合附图对本发明进行详细说明:
[0033]结合图1,本发明提供一种基于Socket连接的多通道双工通讯方法,包括以下步骤:
[0034]步骤1:分别创建适配器、服务器端Socket容器和客户端Socket容器;适配器分别与服务器端Socket容器和客户端Socket容器连接。
[0035](I)适配器
[0036]适配器用于记录需建立Socket连接的服务器端地址和客户端地址的匹配关系。
[0037]在具体实现上,适配器可采用以下方式记录需建立Socket连接的服务器端地址和客户端地址的匹配关系:
[0038]在每台服务器端部署唯一对应的链接监听器,通过链接监听器对服务器端的地址进行监听,当监听到服务器端接收到来自客户端的Socket连接建立请求时,链接监听器对该Socket连接建立请求进行解析,获得客户端地址以及服务器端地址;
[0039]然后,链接监听器将所获得的客户端地址以及服务器端地址发送给适配器;
[0040]适配器记录需建立Socket连接的服务器端地址和客户端地址的匹配关系。
[0041](2)服务器端Socket容器和客户端Socket容器
[0042]服务器端Socket容器用于存储已被适配器记录匹配关系的服务器端套接字,其中,服务器端套接字包含服务器端地址;
[0043]客户端Socket容器用于存储已被适配器记录匹配关系的客户端套接字,其中,客户端套接字包含客户端地址;
[0044]本发明中,客户端地址指客户端IP地址和/或端口号;服务器端地址指服务器端IP地址和/或端口号。
[0045]步骤2,每当适配器已记录服务器端地址和客户端地址的匹配关系之后,在已建立匹配关系的服务器端创建服务器端发送队列和服务器接收队列;
[0046]在已建立匹配关系的客户端创建客户端发送队列和客户端接收队列;
[0047]步骤3,适配器对服务器端发送队列和客户端发送队列进行监听,每当监听到
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1