服务端端口号协商方法及系统的制作方法

文档序号:8324951阅读:495来源:国知局
服务端端口号协商方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种计算机网络技术,特别是涉及一种服务端端口号协商方法及系统。
【背景技术】
[0002]随着计算机应用的发展,计算机上的上层应用程序越来越多,而这些程序大多都是基于网络通信的程序。即通过运用socket通信,客户端可以和服务端很方便地进行交互。Socket通信是网络中计算机进行通信的一种方法。应用程序通过调用系统提供的socket库函数很容易实现网络里计算机的通信。应用程序要使用socket的基本步骤通常包括让服务端绑定一个端口号以向客户端提供服务。而随着应用程序的增加,使用的端口号也在增加。这就带来一个问题,除了知名端口号,即(well-known port)外,其它的端口号都是由大家自己可以随便使用的,这就很容易造成端口号冲突的问题。
[0003]鉴于此,如何避免服务器端的端口号冲突并为客户端提供服务成为了本领域技术人员亟待解决的问题。

【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种服务端端口号协商方法及系统,用于解决现有技术中服务器端的端口号容易发生冲突的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种服务端端口号协商方法,所述服务端端口号协商方法包括:服务端确定一个服务端端口号并提供相应的端口通信服务;服务端监听预设协议号的报文请求;客户端发送具有所述预设协议号的报文请求;服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。
[0006]可选地,所述服务端端口号协商方法包括:所述客户端通过所述服务端端口号与所述服务端建立socket通信。
[0007]可选地,所述服务端端口号协商方法包括:服务端预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端重新确定一个服务端端口号。
[0008]可选地,所述服务端端口号协商方法包括:客户端通过所述默认服务端端口号与所述服务端建立socket通信,当所述socket通信建立不成功时,客户端发送具有所述预设协议号的报文请求以重新确定服务端端口号。
[0009]本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,所述服务端包括??端口号确定模块,用于确定服务端的服务端端口号并提供相应的端口通信服务;端口请求监听模块,用于监听预设协议号的报文请求,当收到所述报文请求时,向发送所述报文请求的客户端回复包括服务端端口号的报文。
[0010]可选地,所述端口号确定模块用于预设一个默认服务端端口号;当所述默认服务端端口号不可用时,服务端端口号确定模块重新确定一个服务端端口号。
[0011]可选的,所述服务端还包括:端口通信模块,所述端口通信模块用于接收端口号为所述服务端端口号的socket通信请求,建立socket通信连接。
[0012]本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,所述客户端包括??端口号获取模块,用于发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文;通信请求模块,用于发送端口号为所述服务端端口号的socket通信请求以建立socket通信连接。
[0013]可选地,所述端口号获取模块用于以默认服务端端口号为所述服务端端口号;当所述默认服务端端口号无法建立socket通信连接时,端口号获取模块发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文。
[0014]本发明还提供一种服务端端口号协商系统,所述服务端端口号协商系统包括任一如上所述的服务端和任一如上所述客户端。
[0015]如上所述,本发明的一种服务端端口号协商方法及系统,具有以下有益效果:能够在服务端进程端口号被其它进程占用后,在不影响其它进程的情况下,将自己的端口号转移,并且能够使得客户端能顺利找到转移后的端口号。
【附图说明】
[0016]图1显示为本发明的一种服务端端口号协商方法的一实施例的流程示意图。
[0017]图2显示为本发明的一种服务端端口号协商方法的一实施例的服务端流程示意图。
[0018]图3显示为本发明的一种服务端端口号协商方法的一实施例的客户端流程示意图。
[0019]图4显示为本发明的一种服务端端口号协商系统的一实施例的模块示意图。
[0020]元件标号说明
[0021]I服务端端口号协商系统
[0022]11服务端
[0023]111端口号确定模块
[0024]112端口请求监听模块
[0025]113端口通信模块
[0026]12客户端
[0027]121端口号获取模块
[0028]122通信请求模块
[0029]SI ?S4步骤
【具体实施方式】
[0030]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0031]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0032]本发明提供一种服务端端口号协商方法。在一个实施例中,如图1所示,所述服务端端口号协商方法包括:
[0033]步骤SI,服务端确定一个服务端端口号并提供相应的端口通信服务。
[0034]在一个实施例中,服务端预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端重新确定一个服务端端口号。即当服务端发现默认端口号已经被其它进程占用后,立即尝试其它端口号,一直到有合适的端口号,则以该端口号为服务端的端口号(服务端端口号)。服务端以该服务端端口号绑定已提供相应的端口通信服务(即应用层通信服务)。此时,服务端可以通过该服务端端口号向客户端提供应用层通信服务。
[0035]在一个实施例中,服务端也可以不预设默认服务端端口号,直接尝试找到一个可用的端口号作为服务端端口号,并提供相应的端口通信服务。
[0036]步骤S2,服务端监听预设协议号的报文请求。
[0037]具体地,服务端建立一个不需要占用系统的端口号,只需要通过协议号就可以识别报文的socket,该socket也可称为二层socket。通过该socket来监听预设协议号的报文请求。在一个实施例中,所述预设协议号为0x8899,服务端监听预设协议号为0x8899的报文请求。
[0038]步骤S2,客户端发送具有所述预设协议号的报文请求。
[0039]在一个实施例中,所述预设协议号为0x8899,客户端发送协议号为0x8899的报文请求。
[0040]步骤S3,服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。
[0041]在一个实施例中,所述预设协议号为0x8899,服务端接收到所述预设协议号为0x8899的报文请求后,并向所述客户端发送单播报文,报文中的数据字段中包含了服务端的服务端端口号。
[0042]在一个实施例中,所述服务端端口号协商方法包括:客户端通过所述默认服务端端口号与所述服务端建立socket通信;当所述socket通信建立不成功时,客户端发送具有所述预设协议号的报文请求以重新确定服务端端口号。如果客户端通过所述默认服务端端口号与所述服务端成功建立socket通信,则不需要发送具有所述预设协议号的报文请求。
[0043]在一个实施例中,如图2所示,服务端端口号协商方法的服务端流程包括以下步骤:服务端(也可称为服务器、服务器端)利用默认端口号建立服务端socket。判断服务端socket是否建立成功,如果建立成功,则开始服务。如果建立不成功,说明默认端口号不可用,则重新找到合适的可用的端口号。接着,打开二层socket,监听客户端是否发出请求。当收到客户端请求后,将端口号封装在报文中发送给客户端。
[0044]在一个实施例中,如图3所示,服务端端口号协商方法的客户端流程包括以下步骤:客户端与服务端的默认端口建立连接。判断是否建立成功,如果客户端与服务端的默认端口建立连接成功,则开始业务。如果客户端与服务端的默认端口建立连接失败,则客户端建立二层socket,发送广播报文给服务端。当客户端接收到服务端回复的二层报文后,解析报文,得到服务端的端口号。客户端通过得到的服务端端口号与服务端建立socket通信。
[0045]本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中。在一个实施例中,如图4所示,所述服务端端口号协商系统I包括服务端11,所述服务端11包括端口号确定模块
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1