[发明专利]一种基于socket的网络通信方法、装置及系统有效
申请号: | 201110385444.8 | 申请日: | 2011-11-28 |
公开(公告)号: | CN103139157A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 吴晶晶 | 申请(专利权)人: | 北京南车时代信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 逯长明 |
地址: | 100070 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 socket 网络 通信 方法 装置 系统 | ||
1.一种基于socket的网络通信方法,其特征在于,该方法包括:
A:初始化过程,包括:
A1:确定与服务端具有连接关系的客户端,分别创建与每一个客户端对应的socket类对象,并记录所述客户端与其对应的socket类对象的对应关系,所述socket类对象中包含了与其对应的客户端主机的主机名,将所述socket类对象指针存入预先建立的服务端socket链表中;
A2:分别建立与所述服务端socket链表中每一个socket类对象对应的socket通信队列,并记录所述socket类对象与其对应的socket通信队列的对应关系;
B:通信过程,包括:
B1:服务端监听网络状态,当监听到客户端发送的连接请求,接收来自发送连接请求的客户端的连接;
B2:服务端指定待接收数据客户端的主机名、线程名和待发送的数据,根据所述主机名确定待接收数据客户端对应的socket类对象,并确定与所述socket类对象对应的socket通信队列;
B3:将所述线程名和所述待发送数据写入待接收数据的客户端对应的socket通信队列中;
B4:与所述socket类对象对应的socket执行程序提取所述socket通信队列中的线程名和待发送数据,并发送给待接收数据的客户端;
B5:所述待接收数据的客户端接收服务端发送的数据,从所述服务端发送的数据中解析出线程名,将所述数据中去除线程名后的数据存入预先建立的所述解析出的线程名所对应的线程队列中,客户端的指定线程从所述线程队列中提取数据。
2.根据权利要求1所述的方法,其特征在于,所述服务端接收来自发送连接请求的客户端的连接具体为:
判断所述发送请求的客户端对应的socket类对象是否存在于所述服务端socket链表中时,如果是,则接收来自发送连接请求的客户端的连接;如果否,则创建socket类对象并进行绑定监听,然后接收来自发送连接请求的客户端的连接。
3.一种基于socket的网络通信方法,其特征在于,该方法包括:
C:初始化过程,包括:
C1:确定与客户端具有连接关系的服务端,分别创建与每一个服务端对应的socket类对象,并记录所述服务端与其对应的socket类对象的对应关系,所述socket类对象中包含了与其对应的服务端的主机信息,将所述socket类对象指针存入预先建立的客户端socket链表;
C2:客户端创建线程队列链表,然后注册线程队列,将线程队列和线程名绑定;
D:通信过程,包括:
D1:向与所述客户端socket链表中的socket类对象对应的服务端发送连接请求,当客户端发送的连接请求被所述服务端监听到,客户端与监听到所述连接请求的服务端建立连接;
D2:与客户端建立连接的服务端指定待接收数据客户端的主机名、线程名和待发送的数据,将线程名和待发送的数据存入服务端socket链表中与客户端对应的socket类对象所对应的通信队列中,与所述socket类对象对应的socket执行程序提取所述socket通信队列中的线程名和待发送数据,并发送给客户端;
D3:客户端接收与其建立连接的服务端发送的数据,从接收的数据中解析出线程名;
D4:将所述线程名从所述接收的数据中去除;
D5:将去除线程名后的数据写入所述解析出的线程名所对应的线程队列中;
D6:从线程队列中提取所述去除线程名后的数据。
4.根据权利要求3所述的方法,其特征在于,所述线程队列链表中的存放单元为含有线程队列句柄和线程名的结构体,注册线程队列时,将所述线程队列句柄和线程名写入结构体,将结构体添加至线程队列链表尾部。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京南车时代信息技术有限公司,未经北京南车时代信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110385444.8/1.html,转载请声明来源钻瓜专利网。