CN104660453A - 服务端端口号协商方法及系统 - Google Patents
服务端端口号协商方法及系统 Download PDFInfo
- Publication number
- CN104660453A CN104660453A CN201510125702.7A CN201510125702A CN104660453A CN 104660453 A CN104660453 A CN 104660453A CN 201510125702 A CN201510125702 A CN 201510125702A CN 104660453 A CN104660453 A CN 104660453A
- Authority
- CN
- China
- Prior art keywords
- service end
- port numbers
- end port
- client
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明提供一种服务端端口号协商方法及系统。所述服务端端口号协商方法包括:服务端确定一个服务端端口号并提供相应的端口通信服务;服务端监听预设协议号的报文请求;客户端发送具有所述预设协议号的报文请求;服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。本发明的技术方案能够在服务端进程端口号被其它进程占用后,在不影响其它进程的情况下,将自己的端口号转移,并且能够使得客户端能顺利找到转移后的端口号。
Description
技术领域
本发明涉及一种计算机网络技术,特别是涉及一种服务端端口号协商方法及系统。
背景技术
随着计算机应用的发展,计算机上的上层应用程序越来越多,而这些程序大多都是基于网络通信的程序。即通过运用socket通信,客户端可以和服务端很方便地进行交互。Socket通信是网络中计算机进行通信的一种方法。应用程序通过调用系统提供的socket库函数很容易实现网络里计算机的通信。应用程序要使用socket的基本步骤通常包括让服务端绑定一个端口号以向客户端提供服务。而随着应用程序的增加,使用的端口号也在增加。这就带来一个问题,除了知名端口号,即(well-known port)外,其它的端口号都是由大家自己可以随便使用的,这就很容易造成端口号冲突的问题。
鉴于此,如何避免服务器端的端口号冲突并为客户端提供服务成为了本领域技术人员亟待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种服务端端口号协商方法及系统,用于解决现有技术中服务器端的端口号容易发生冲突的问题。
为实现上述目的及其他相关目的,本发明提供一种服务端端口号协商方法,所述服务端端口号协商方法包括:服务端确定一个服务端端口号并提供相应的端口通信服务;服务端监听预设协议号的报文请求;客户端发送具有所述预设协议号的报文请求;服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。
可选地,所述服务端端口号协商方法包括:所述客户端通过所述服务端端口号与所述服务端建立socket通信。
可选地,所述服务端端口号协商方法包括:服务端预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端重新确定一个服务端端口号。
可选地,所述服务端端口号协商方法包括:客户端通过所述默认服务端端口号与所述服务端建立socket通信,当所述socket通信建立不成功时,客户端发送具有所述预设协议号的报文请求以重新确定服务端端口号。
本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,所述服务端包括:端口号确定模块,用于确定服务端的服务端端口号并提供相应的端口通信服务;端口请求监听模块,用于监听预设协议号的报文请求,当收到所述报文请求时,向发送所述报文请求的客户端回复包括服务端端口号的报文。
可选地,所述端口号确定模块用于预设一个默认服务端端口号;当所述默认服务端端口号不可用时,服务端端口号确定模块重新确定一个服务端端口号。
可选的,所述服务端还包括:端口通信模块,所述端口通信模块用于接收端口号为所述服务端端口号的socket通信请求,建立socket通信连接。
本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,所述客户端包括:端口号获取模块,用于发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文;通信请求模块,用于发送端口号为所述服务端端口号的socket通信请求以建立socket通信连接。
可选地,所述端口号获取模块用于以默认服务端端口号为所述服务端端口号;当所述默认服务端端口号无法建立socket通信连接时,端口号获取模块发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文。
本发明还提供一种服务端端口号协商系统,所述服务端端口号协商系统包括任一如上所述的服务端和任一如上所述客户端。
如上所述,本发明的一种服务端端口号协商方法及系统,具有以下有益效果:能够在服务端进程端口号被其它进程占用后,在不影响其它进程的情况下,将自己的端口号转移,并且能够使得客户端能顺利找到转移后的端口号。
附图说明
图1显示为本发明的一种服务端端口号协商方法的一实施例的流程示意图。
图2显示为本发明的一种服务端端口号协商方法的一实施例的服务端流程示意图。
图3显示为本发明的一种服务端端口号协商方法的一实施例的客户端流程示意图。
图4显示为本发明的一种服务端端口号协商系统的一实施例的模块示意图。
元件标号说明
1 服务端端口号协商系统
11 服务端
111 端口号确定模块
112 端口请求监听模块
113 端口通信模块
12 客户端
121 端口号获取模块
122 通信请求模块
S1~S4 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供一种服务端端口号协商方法。在一个实施例中,如图1所示,所述服务端端口号协商方法包括:
步骤S1,服务端确定一个服务端端口号并提供相应的端口通信服务。
在一个实施例中,服务端预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端重新确定一个服务端端口号。即当服务端发现默认端口号已经被其它进程占用后,立即尝试其它端口号,一直到有合适的端口号,则以该端口号为服务端的端口号(服务端端口号)。服务端以该服务端端口号绑定已提供相应的端口通信服务(即应用层通信服务)。此时,服务端可以通过该服务端端口号向客户端提供应用层通信服务。
在一个实施例中,服务端也可以不预设默认服务端端口号,直接尝试找到一个可用的端口号作为服务端端口号,并提供相应的端口通信服务。
步骤S2,服务端监听预设协议号的报文请求。
具体地,服务端建立一个不需要占用系统的端口号,只需要通过协议号就可以识别报文的socket,该socket也可称为二层socket。通过该socket来监听预设协议号的报文请求。在一个实施例中,所述预设协议号为0x8899,服务端监听预设协议号为0x8899的报文请求。
步骤S2,客户端发送具有所述预设协议号的报文请求。
在一个实施例中,所述预设协议号为0x8899,客户端发送协议号为0x8899的报文请求。
步骤S3,服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。
在一个实施例中,所述预设协议号为0x8899,服务端接收到所述预设协议号为0x8899的报文请求后,并向所述客户端发送单播报文,报文中的数据字段中包含了服务端的服务端端口号。
在一个实施例中,所述服务端端口号协商方法包括:客户端通过所述默认服务端端口号与所述服务端建立socket通信;当所述socket通信建立不成功时,客户端发送具有所述预设协议号的报文请求以重新确定服务端端口号。如果客户端通过所述默认服务端端口号与所述服务端成功建立socket通信,则不需要发送具有所述预设协议号的报文请求。
在一个实施例中,如图2所示,服务端端口号协商方法的服务端流程包括以下步骤:服务端(也可称为服务器、服务器端)利用默认端口号建立服务端socket。判断服务端socket是否建立成功,如果建立成功,则开始服务。如果建立不成功,说明默认端口号不可用,则重新找到合适的可用的端口号。接着,打开二层socket,监听客户端是否发出请求。当收到客户端请求后,将端口号封装在报文中发送给客户端。
在一个实施例中,如图3所示,服务端端口号协商方法的客户端流程包括以下步骤:客户端与服务端的默认端口建立连接。判断是否建立成功,如果客户端与服务端的默认端口建立连接成功,则开始业务。如果客户端与服务端的默认端口建立连接失败,则客户端建立二层socket,发送广播报文给服务端。当客户端接收到服务端回复的二层报文后,解析报文,得到服务端的端口号。客户端通过得到的服务端端口号与服务端建立socket通信。
本发明还提供一种服务端端口号协商系统,应用于包括服务端和客户端的网络中。在一个实施例中,如图4所示,所述服务端端口号协商系统1包括服务端11,所述服务端11包括端口号确定模块111以及端口请求监听模块112。其中:
端口号确定模块111用于确定服务端的服务端端口号并提供相应的端口通信服务。在一个实施例中,端口号确定模块111预设一个默认服务端端口号,当所述默认服务端端口号不可用时,端口号确定模块111重新确定一个服务端端口号。即当服务端发现默认端口号已经被其它进程占用后,立即尝试其它端口号,一直到有合适的端口号,则以该端口号为服务端的端口号(服务端端口号)。服务端以该服务端端口号绑定已提供相应的端口通信服务(即应用层通信服务)。此时,服务端可以通过该服务端端口号向客户端提供应用层通信服务。在一个实施例中,端口号确定模块111也可以不预设默认服务端端口号,直接尝试找到一个可用的端口号作为服务端端口号,并提供相应的端口通信服务。
端口请求监听模块112用于监听预设协议号的报文请求,当收到所述报文请求时,向发送所述报文请求的客户端回复包括服务端端口号的报文。端口请求监听模块112建立一个不需要占用系统的端口号,只需要通过协议号就可以识别报文的socket,该socket也可称为二层socket。通过该socket来监听预设协议号的报文请求。端口请求监听模块112接收到所述预设协议号的报文请求后,并向所述客户端发送单播报文,报文中的数据字段中包含了服务端的服务端端口号。在一个实施例中,所述预设协议号为0x8899,端口请求监听模块112监听预设协议号为0x8899的报文请求。端口请求监听模块112接收到所述预设协议号为0x8899的报文请求后,并向所述客户端发送单播报文,报文中的数据字段中包含了服务端的服务端端口号。
在一个实施例中,所述服务端11还包括端口通信模块113。所述端口通信模块113用于接收端口号为所述服务端端口号的socket通信请求,建立socket通信连接。
本发明还提供一种服务端端口号协商系统1,所述服务端端口号协商系统1包括客户端12,所述客户端12包括:
端口号获取模块121用于发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文。在一个实施例中,所述预设协议号为0x8899,端口号获取模块121发送协议号为0x8899的报文请求,并等待服务端回复包括服务端端口号的报文。当端口号获取模块121接收到服务端回复的二层报文后,解析报文,得到服务端的端口号。
通信请求模块122用于发送端口号为所述服务端端口号的socket通信请求以建立socket通信连接。在一个实施例中,所述端口号获取模块121用于以默认服务端端口号为所述服务端端口号;当通信请求模块122利用所述默认服务端端口号无法建立socket通信连接时,端口号获取模块121发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文。当端口号获取模块121接收到服务端回复的二层报文后,解析报文,得到服务端的端口号。通信请求模块122以获取的服务端端口号与服务端建立socket通信连接。
本发明还提供一种服务端端口号协商系统1,所述服务端端口号协商系统1包括如上所述的服务端11与所述客户端12。
在一个实施例中,端口号确定模块111预设一个默认服务端端口号,当所述默认服务端端口号不可用时,端口号确定模块111重新确定一个服务端端口号。即当服务端11发现默认端口号已经被其它进程占用后,立即尝试其它端口号,一直到有合适的端口号,则以该端口号为服务端11的端口号(服务端端口号)。服务端11以该服务端端口号绑定已提供相应的端口通信服务(即应用层通信服务)。此时,服务端11可以通过该服务端端口号向客户端12提供应用层通信服务。客户端12与服务端11的默认端口建立连接。判断是否建立成功,如果客户端12与服务端11的默认端口建立连接成功,则开始业务。如果客户端12与服务端11的默认端口建立连接失败,客户端12的端口号获取模块121发送协议号为0x8899(预设协议号)的报文请求,并等待服务端回复包括服务端端口号的报文。端口请求监听模块112用于监听预设协议号的报文请求,当收到所述端口号获取模块121发送的报文请求时,向发送所述报文请求的客户端12回复包括服务端端口号的报文。当端口号获取模块121接收到服务端11的端口请求监听模块112回复的二层报文后,解析报文,得到服务端11的端口号。通信请求模块122以端口号获取模块121获取的服务端端口号与服务端11建立socket通信连接。服务端11的端口通信模块113接收到客户端11的通信请求模块122发送的端口号为所述服务端端口号的socket通信请求,建立服务端11与客户端12的socket通信连接。
综上所述,本发明的一种服务端端口号协商方法及系统能够在服务端进程端口号被其它进程占用后,在不影响其它进程的情况下,将自己的端口号转移,采用的端口号很灵活,并且能够使得客户端能顺利找到转移后的端口号。本发明的技术方案能够解决服务端的端口冲突问题,采用灵活的端口号提供服务。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种服务端端口号协商方法,其特征在于,所述服务端端口号协商方法包括:
服务端确定一个服务端端口号并提供相应的端口通信服务;
服务端监听预设协议号的报文请求;
客户端发送具有所述预设协议号的报文请求;
服务端接收到所述报文请求,并向所述客户端回复包括服务端端口号的报文。
2.根据权利要求1所述的服务端端口号协商方法,其特征在于:所述服务端端口号协商方法包括:所述客户端通过所述服务端端口号与所述服务端建立socket通信。
3.根据权利要求1所述的服务端端口号协商方法,其特征在于:所述服务端端口号协商方法包括:服务端预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端重新确定一个服务端端口号。
4.根据权利要求1所述的服务端端口号协商方法,其特征在于:所述服务端端口号协商方法包括:客户端通过所述默认服务端端口号与所述服务端建立socket通信;当所述socket通信建立不成功时,客户端发送具有所述预设协议号的报文请求以重新确定服务端端口号。
5.一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,其特征在于:所述服务端包括:端口号确定模块,用于确定服务端的服务端端口号并提供相应的端口通信服务;端口请求监听模块,用于监听预设协议号的报文请求,当收到所述报文请求时,向发送所述报文请求的客户端回复包括服务端端口号的报文。
6.根据权利要求5所述的服务端端口号协商系统,其特征在于:所述端口号确定模块用于预设一个默认服务端端口号,当所述默认服务端端口号不可用时,服务端端口号确定模块重新确定一个服务端端口号。
7.根据权利要求5所述的服务端端口号协商系统,其特征在于:所述服务端还包括:端口通信模块,所述端口通信模块用于接收端口号为所述服务端端口号的socket通信请求,建立socket通信连接。
8.一种服务端端口号协商系统,应用于包括服务端和客户端的网络中,其特征在于:所述客户端包括:端口号获取模块,用于发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文;通信请求模块,用于发送端口号为所述服务端端口号的socket通信请求以建立socket通信连接。
9.根据权利要求8所述的服务端端口号协商系统,其特征在于:所述端口号获取模块用于以默认服务端端口号为所述服务端端口号;当所述默认服务端端口号无法建立socket通信连接时,端口号获取模块发送预设协议号的报文请求并等待服务端回复包括服务端端口号的报文。
10.一种服务端端口号协商系统,其特征在于:所述服务端端口号协商系统包括如权利要求5至7中任一项所述的服务端和如权利要求8至9中任一项所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510125702.7A CN104660453A (zh) | 2015-03-20 | 2015-03-20 | 服务端端口号协商方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510125702.7A CN104660453A (zh) | 2015-03-20 | 2015-03-20 | 服务端端口号协商方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104660453A true CN104660453A (zh) | 2015-05-27 |
Family
ID=53251184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510125702.7A Pending CN104660453A (zh) | 2015-03-20 | 2015-03-20 | 服务端端口号协商方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104660453A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301889A (zh) * | 2016-07-28 | 2017-01-04 | Tcl移动通信科技(宁波)有限公司 | 一种端口号快速设置方法及系统 |
CN111698337A (zh) * | 2020-07-21 | 2020-09-22 | 杭州海康威视数字技术股份有限公司 | 建立通信连接的方法、装置及设备 |
CN113364821A (zh) * | 2020-03-04 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种功能服务访问方法、设备及存储介质 |
CN115720176A (zh) * | 2022-12-26 | 2023-02-28 | 南京汇荣信息技术有限公司 | 基于Socket通信报文内容的动态加密方法、系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325580A (zh) * | 2007-06-15 | 2008-12-17 | 上海亿人通信终端有限公司 | 基于nat-pt的ftp应用层网关的实现方法 |
CN102333029A (zh) * | 2011-06-23 | 2012-01-25 | 北京新媒传信科技有限公司 | 一种服务器集群系统中的路由方法 |
CN102594823A (zh) * | 2012-02-20 | 2012-07-18 | 南京邮电大学 | 一种远程安全访问智能家居的可信系统 |
-
2015
- 2015-03-20 CN CN201510125702.7A patent/CN104660453A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325580A (zh) * | 2007-06-15 | 2008-12-17 | 上海亿人通信终端有限公司 | 基于nat-pt的ftp应用层网关的实现方法 |
CN102333029A (zh) * | 2011-06-23 | 2012-01-25 | 北京新媒传信科技有限公司 | 一种服务器集群系统中的路由方法 |
CN102594823A (zh) * | 2012-02-20 | 2012-07-18 | 南京邮电大学 | 一种远程安全访问智能家居的可信系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301889A (zh) * | 2016-07-28 | 2017-01-04 | Tcl移动通信科技(宁波)有限公司 | 一种端口号快速设置方法及系统 |
CN106301889B (zh) * | 2016-07-28 | 2019-10-18 | Tcl移动通信科技(宁波)有限公司 | 一种端口号快速设置方法及系统 |
CN113364821A (zh) * | 2020-03-04 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种功能服务访问方法、设备及存储介质 |
CN113364821B (zh) * | 2020-03-04 | 2024-03-05 | 腾讯科技(深圳)有限公司 | 一种功能服务访问方法、设备及存储介质 |
CN111698337A (zh) * | 2020-07-21 | 2020-09-22 | 杭州海康威视数字技术股份有限公司 | 建立通信连接的方法、装置及设备 |
CN115720176A (zh) * | 2022-12-26 | 2023-02-28 | 南京汇荣信息技术有限公司 | 基于Socket通信报文内容的动态加密方法、系统 |
CN115720176B (zh) * | 2022-12-26 | 2023-09-19 | 南京汇荣信息技术有限公司 | 基于Socket通信报文内容的动态加密方法、系统、网络设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377686B (zh) | 一种消息订阅系统、消息订阅方法及装置 | |
CN103501347B (zh) | 资源分配方法及装置 | |
CN106034084B (zh) | 一种数据传输方法及装置 | |
CN104660453A (zh) | 服务端端口号协商方法及系统 | |
CN105721512A (zh) | 一种远程过程调用系统及其方法 | |
CN107800597B (zh) | 家电设备的数据传输方法、装置和计算机可读存储介质 | |
CN105376299A (zh) | 一种网络通信方法、设备及网络附属存储设备 | |
RU2008138577A (ru) | Сетевая система | |
CN102857505A (zh) | 一种物联网数据总线中间件 | |
EP2913977A2 (en) | Resource information acquisition method, system and device for internet of things terminal device | |
CN110830282A (zh) | 一种用户面功能配置的方法、装置及设备 | |
RU2008131535A (ru) | Сетевая система | |
CN105357329B (zh) | 跨idc网络环境下业务数据的传输方法、装置及系统 | |
CN112817751A (zh) | 算力资源的管理方法及装置、存储介质、电子装置 | |
CN105516250A (zh) | 物联网服务调用平台和系统 | |
CN105407166A (zh) | 一种可穿戴设备的通信实现方法及系统 | |
CN106302432B (zh) | 一种基于车联网的通信装置及控制方法 | |
CN104113564A (zh) | 超文本传输协议连接复用方法、设备、系统及终端 | |
CN105391776A (zh) | 长连接消息的通信方法及系统 | |
CN105338131A (zh) | 一种dhcp服务器地址池容量的测试方法及系统 | |
CN106941532B (zh) | 一种应用于分布式系统的数据传输方法及装置 | |
CN102523122A (zh) | 广域网终端设备远程管理方法及管理装置 | |
CN114125024B (zh) | 音频传输方法、电子设备及可读存储介质 | |
CN115914319A (zh) | 一种虚拟现实设备的远程管理方法和系统 | |
CN114615272B (zh) | 媒体数据转发服务器调度方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150527 |