一种复杂网络环境下的SOCKET通信建立方法技术

技术编号:18975112 阅读:20 留言:0更新日期:2018-09-19 04:40
本发明专利技术涉及一种复杂网络环境下的SOCKET通信建立方法,可以用于复杂网络环境下SOCKET通信的建立过程。本发明专利技术描述了该方法的详细实现过程,包括通信端口组的选择、服务器端通信监听的设置方法、客户机端通信侦测的设置方法、侦测结果的判定方法等,并描述了相应方法的具体流程,从而支持上述方法。与现有的连接方式相比具有更加优越的特性,故能够有效的解决复杂网络中由于端口设置问题导致的与服务器无法通信的问题。本发明专利技术可广泛的用于服务器与计算机之间的软件通信,也可以被用于手机APP与服务器之间的软件通信中,也可以被广泛用于其他采用SOCKET通信的复杂网络环境下的软件通信过程中,具有广泛的应用价值。

【技术实现步骤摘要】
一种复杂网络环境下的SOCKET通信建立方法
本专利技术涉及一种复杂网络环境下的SOCKET通信建立方法,可以用于复杂网络环境下SOCKET通信的建立过程。
技术介绍
SOCKET是应用层与TCP/IP协议族通信的中间软件抽象层,它具有一组接口,能够把复杂的TCP/IP协议族隐藏到SOCKET接口后面,使得用户能够简单的实现TCP/IP通信,具有接口简单、实现方便的特点。端口是TCP/IP协议中的概念,描述的是TCP协议上的对应的应用,如FTP服务的端口号为21。但是在实际的复杂网络通信中,特别是广域网通信中,由于不同运营商、防火墙等因素导致对不同端口的通信要求不同,因此可能会出现服务器设定的端口无法通信的情况。
技术实现思路
本专利技术的目的在于提供一种复杂网络环境下的SOCKET通信建立方法,它针对客户机/服务器架构下,广域网中由于多种原因,可能出现的客户机端无法访问服务器特定端口的情况进行了多端口通信检测设计,实现了客户机端可以动态选择服务器通信端口的功能,能够有效的解决复杂网络中由于端口设置问题导致的与服务器无法通信的问题。本专利技术在现有技术的基础上,提出了:1、服务器采用端口组监听方式,来实现对多个通信端口的监听;2、客户机端采用端口组侦测方式,来寻找最佳通信端口;3、客户机端端口组侦测采用并行方式,来实现寻找最佳通信端口。4、在上述并行侦测的基础上,提出了一种基于端口组侦测结果的通信端口选择方法。具体步骤如下:(1)通信系统设计阶段:从TCP/IP协议规定的端口编号中选择可用的端口组成通信端口组。(2)初始化阶段:服务器端采用端口组监听方式,服务器软件启动后,由SOCKET监听程序对设置的端口组进行监听,等待客户机端的端口访问;客户机端采用端口组侦测方式;(3)客户机端端口组侦测采用并行侦测方式;(4)基于侦测结果的工作端口选择。所述步骤(1)中,客户机端采用与服务器端相同的端口组设置,即从可用的端口中选择合适的通信端口组成通信端口组。所述步骤(2)中,客户机端软件程序中,启动多个子线程,对应于端口组中的各个端口号;子线程数与端口组中的端口数相同;每个子线程向服务器端设置的通信端口组中的一个发送空信息。所述步骤(3)中,客户机端端口组侦测采用并行侦测方式的具体步骤如下:(31)客户机端设置定时器组,组内每一个定时器对应一个子线程;(32)客户机端启动子线程;(33)客户机端子线程与服务器端对应端口进行通信连接;(34)若通信连接建立,则客户机端子线程启动计时器,若通信连接不能建立,则报告异常,并将结果存入端口组网络侦测结果数组;(35)在通信连接建立的情况下,客户机端子线程发送空信息;(36)若收到服务器回复消息,则客户机端子线程结束计时器;若收不到回复消息,则报告异常,并将结果存入端口组网络侦测结果数组;(37)等待所有子线程结束。(38)客户机端并行侦测完成,开始进行侦测结果判断。所述步骤(4)中,客户机端端口组并行侦测的结果判断的具体步骤如下:(41)各子线程结束的结果为:通信正常或通信不正常;(42)选择子线程中通信正常的端口组为正常端口组;(43)比较正常端口组中各端口通信所用的通信时长;(44)选择通信用时最短的一个端口作为后续正常通信的端口号;(45)若端口组所有端口通信均不正常,即正常端口组为空,则报告通信异常,网络不通。本专利技术采用SOCKET常规通信方式,具体步骤如下:(1)SOCKET通信过程采用上述端口设置过程中设置的服务器工作端口为绑定的端口;(2)采用SOCKET常规通信方式进行通信,即采用客户端发起通信,服务器端在工作端口响应的方式进行通信。本专利技术基于现有SOCKET通信方法,可以用来实现在复杂网络环境下的通信建立,能够有效的规避端口封锁或者其他由于端口原因造成的软件网络通信异常。该方法具有实现简单、图示直观,应用方便,与具体物理实现方式无关,便于被大家接受的特点。在实际应用中,可以被用于服务器与计算机之间的软件通信,也可以被用于手机APP与服务器之间的软件通信中,也可以被广泛用于其他采用SOCKET通信的复杂网络环境下的软件通信过程中。附图说明图1是C/S架构的网络布局。图2是服务器端和客户机端的通信端口组选择。图3是服务器端的端口组监听开启流程图。图4是服务器端的单个监听流程图。图5是客户机端端口组并行侦测流程图。图6是图5中各侦测子线程流程图。图7是服务器端和客户机端的连接关系。图8是图5中侦测结果判断的流程图。具体实施方式本专利技术的一个优选实例结合附图详述如下:如图1所示为本专利技术所针对的C/S架构的网络分布情况,即服务器和客户机架构情况。图2所示为步骤(1)中,服务器端和客户机端的通信端口组选择,在TCP/IP协议中总共有65536个端口,我们需要从中选择多个端口作为通信端口组,这些端口组将作为服务器端的监听端口组和客户机端的侦测端口组,如图2所示,选择了3个端口,即27001、27002、27003。这些端口在通信系统设计时选定。图3所示为在图2所选通信端口组的基础上,在步骤(2)中,服务器端开启对这些端口的监听流程图,在函数起始后,逐一开启新线程,每个线程监听一个端口号,如图3中线程1监听端口27001,线程2监听端口27002,线程3监听端口27003。图4所示为图3中各个线程的具体实现过程,使用socket()函数建立套接字,然后使用bind()函数绑定服务器端地址、监听端口等,接着采用listen()函数开启监听连接请求,线程会在accept()函数这里等待连接请求。图5所示为在图2所选通信端口组的基础上,按照步骤(3),客户机端开启对这些端口的侦测流程图,在函数起始后,逐一开启新线程,每个线程负责连接一个端口号,如图5中线程1侦测服务器端口27001,线程2侦测服务器端口27002,线程3侦测服务器端口27003。然后主程序等待这些线程结束,开始对侦测结果进行判断,找到通信最快的端口,设置该端口为工作端口,至此连接建立完成。图6所示为图5中各个线程的具体实现过程,首先使用函数bind()绑定侦测的网络地址和端口号,然后使用connect()函数对服务器端口进行连接,假如连接成功,则发送接收空数据进行连接测试。假如连接异常,则退出,并标记异常。图7所示为服务器端与客户端之间进行发送、接收测试的关系图,图中省略的部分在图4和图5中已经描述。客户机端通过connect()函数发出连接,服务器端则在accept()函数处获取到连接信息。之后则进行收发测试,即客户机端发送数据,服务器端则接收数据,并发送回复信息。图8所示为图5中侦测结果判断的流程,即步骤(4)。在侦测完成后,通过ReadNetTestResult()函数读取端口组网络侦测结果数组,每次读取一个端口的通信结果和相应的通信时长,假如结果是通信不成功,则抛弃该端口;假如结果是通信成功,则判断时长是否是最短的,假如是最短的,则将工作端口设置为该端口,假如所有结果都为不成功,则报告网络中断。如在本例中,线程1侦测服务器端口27001的结果为无法通信;线程2侦测服务器端口27002的结果为可以通信,通信耗时10ms;线程3侦测服务器端口27003的结果为可以通信,通信耗时20ms,则服务器端口270本文档来自技高网...

【技术保护点】
1.一种复杂网络环境下的SOCKET通信建立方法,采用SOCKET常规通信方式,其特征在于:(1)通信系统设计阶段:从TCP/IP协议规定的端口编号中选择可用的端口组成通信端口组;(2)初始化阶段:服务器端采用端口组监听方式,服务器软件启动后,由SOCKET监听程序对设置的端口组进行监听,等待客户机端的端口访问;客户机端采用端口组侦测方式;(3)客户机端端口组侦测采用并行侦测方式;(4)基于侦测结果的工作端口选择。

【技术特征摘要】
1.一种复杂网络环境下的SOCKET通信建立方法,采用SOCKET常规通信方式,其特征在于:(1)通信系统设计阶段:从TCP/IP协议规定的端口编号中选择可用的端口组成通信端口组;(2)初始化阶段:服务器端采用端口组监听方式,服务器软件启动后,由SOCKET监听程序对设置的端口组进行监听,等待客户机端的端口访问;客户机端采用端口组侦测方式;(3)客户机端端口组侦测采用并行侦测方式;(4)基于侦测结果的工作端口选择。2.根据权利要求1所述的复杂网络环境下的SOCKET通信建立方法,其特征在于,所述步骤(2)中,客户机端采用与服务器端相同的端口组设置,客户机端软件程序中,启动多个子线程,对应于端口组中的各个端口号;子线程数与端口组中的端口数相同;每个子线程向服务器端设置的通信端口组中的一个发送空信息。3.根据权利要求2所述的复杂网络环境下的SOCKET通信建立方法,其特征在于,所述步骤(3)中,客户机端端口组侦测采用并行侦测方式的具体步骤如下:(31)客户机端设置定时器组,组内每一个定时器对应一个子...

【专利技术属性】
技术研发人员:孙斌
申请(专利权)人:南京工程学院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1