CN102984237A - 一种基于socket连接的数据传输系统及方法 - Google Patents
一种基于socket连接的数据传输系统及方法 Download PDFInfo
- Publication number
- CN102984237A CN102984237A CN2012104729416A CN201210472941A CN102984237A CN 102984237 A CN102984237 A CN 102984237A CN 2012104729416 A CN2012104729416 A CN 2012104729416A CN 201210472941 A CN201210472941 A CN 201210472941A CN 102984237 A CN102984237 A CN 102984237A
- Authority
- CN
- China
- Prior art keywords
- local
- remote
- server
- agent
- service end
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于socket连接的数据传输系统及方法,包括本地客户端、本地代理服务器、远程代理服务器和远程服务端;本地代理服务器中设有一个本地代理端口列表,每个本地端口对应一个远程服务端的地址,本地客户端仅需与本地代理服务器的一个本地端口连接,通过查找本地端口列表找到本地客户端要连接的远程服务端的地址,进而本地代理服务器与远程代理服务器建立连接,并告知要连接的远程服务端的地址,远程代理服务器与相应的远程服务端建立连接,之后本地客户端和远程服务端之间即可进行数据传输;因此本地客户端无需具有对代理协议的支持,具有更大的灵活性和适应性;代理服务器使用资源少,部署简单;本发明实现逻辑简单,成本低廉。
Description
技术领域
本发明涉及一种基于socket连接的数据传输系统及方法,属于无线通信领域。
背景技术
如图1所示的网络中,客户端主机只能访问代理服务器的特定端口,并且不能直接访问外部网络,但要实现从客户端建立到外部网络的服务TCP连接:
常用的代理协议包括HTTP代理和socks代理,前者只能服务于基于HTTP协议的应用,相对于HTTP代理socks协议运行在底层中,socks协议中,客户端使用握手协议告知代理服务器想要建立的连接信息以及使用哪种协议(TCP/UDP)。
socks的工作过程:
客户端A想要通过internet与客户端B进行通讯,但他们之间有防火墙,客户端A自己并没有获得建立这个连接的授权。所以客户端A先连接到一个可以连接到客户端B的socks代理服务器,并告诉代理他想要建立与客户端B的连接,同时发送socks协议头,告知客户端B的地址和端口号,然后socks代理服务器自己通过防火墙建立到客户端B的连接,之后在客户端A和客户端B之间进行数据转发。
但使用socks代理的前提是客户端软件需要对该协议的支持,而实际上现在的大多数常用软件并不支持,因此,我们需要一个中间层来完成这种协议的转换。
发明内容
本发明所要解决的技术问题是提供一种无需客户端软件支持而使用socket连接的数据传输方法及系统。
本发明解决上述技术问题的技术方案如下:一种基于socket连接的数据传输方法,具体步骤如下:
步骤1:在本地代理服务器中建立一个本地代理端口列表,每个本地代理端口对应一个远程服务端的地址;在远程代理服务器中设置一个远程代理端口;
步骤2:本地代理服务器实时监听所有本地代理端口;
步骤3:判断是否有本地代理端口接收到来自本地客户端的连接请求,如果有,进入步骤4,否则返回步骤2;
步骤4:本地客户端与被请求连接的本地代理端口建立连接L1;
步骤5:在本地代理端口列表中查找被请求连接的本地代理端口对应的远程服务端的地址;
步骤6:远程代理服务器实时监听远程代理端口;
步骤7:判断远程代理端口是否接收到来自本地代理服务器的连接请求,如果有,进入步骤8,否则返回步骤6;
步骤8:本地代理服务器与远程代理服务器的代理端口建立连接L2,并与远程代理服务器握手并告知要连接的远程服务端的地址A1;
步骤9:远程代理服务器根据获得的远程服务端的地址A1与相应的远程服务端建立连接L3;
步骤10:本地客户端与远程服务端之间通过连接L1、L2、L3进行数据传输。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述所述步骤10中进行数据传输的具体步骤如下:
步骤10.1:所述本地客户端和远程服务端发送和接收数据;
步骤10.2:所述本地代理服务器检测连接L1、L2上的可读状态,远程代理服务器检测连接L2、L3的可读状态;
步骤10.3:当本地代理服务器和远程代理服务器检测到任何一条与之相连的连接为可读时,读取该连接上的数据并写入到与之相连的另一条连接上;
步骤10.4:检测读写过程中是否存在异常,如果存在则断开并清理连接,终止本次代理通讯;否则清理缓存,并返回步骤10.2。
本发明解决上述技术问题的技术方案如下:一种基于socket连接的数据传输系统,包括本地客户端、本地代理服务器、远程代理服务器和远程服务端;
所述本地代理服务器与本地客户端相连,所述远程代理服务器与本地代理服务器相连,所述远程服务端与远程代理服务器相连;
所述本地客户端用于向本地代理服务器发送数据和接收本地代理服务器传来的数据;
所述本地代理服务器与远程代理服务器用于在本地客户端与远程服务端之间建立连接链路和进行数据传输;
所述远程服务端用于向远程代理服务器发送数据和接收远程代理服务器传来的数据。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述本地代理服务器中设有一个本地代理端口列表,每个本地代理端口对应一个远程服务端的地址;在远程代理服务器中设置一个的远程代理端口。
进一步,所述本地代理端口列表用于查找本地端口相对应的远程服务端的地址。
本发明的有益效果是:本发明所述一种基于socket连接的数据传输系统及方法可以部分摆脱本地防火墙的限制,获得更多的外部网络访问可能;且实现逻辑简单,成本低廉;代理服务器使用资源少,部署简单;本地代理服务器中的每个本地端口对应一个远程服务端的地址,本地客户端仅需与本地代理服务器的一个本地端口连接,通过查找本地端口列表找到本地客户端要连接的远程服务端的地址,进而本地代理服务器与远程代理服务器建立连接,并告知要连接的远程服务端的地址,远程代理服务器与相应的远程服务端建立连接,之后本地客户端和远程服务端之间即可进行数据传输,因此本地客户端无需具有对代理协议的支持,具有更大的灵活性和适应性。
附图说明
图1为客户端与外部网络通信的结构框图;
图2为本发明所述一种基于socket连接的数据传输系统及其内部通信的示意图;
图3为对应于图2的方法流程图;
图4为所述步骤10中进行数据传输的流程图。
图5为本发明所述一种基于socket连接的数据传输系统框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
socket又名Berkeley套接字接口,一个应用程序接口(API),使用一个Internet套接字的概念,使主机间或者一台计算机上的进程间可以通讯。它可以在很多不同的输入/输出设备和驱动之上运行,尽管这有赖于操作系统的具体实现。接口实现用于TCP/IP协议,因此它是维持Internet的基本技术之一。
图2为本发明所述一种基于socket连接的数据传输系统及其内部通信的示意图,图3为对应于图2的方法流程图;如图2、图3所示,一种基于socket连接的数据传输方法,具体步骤如下:
步骤1:在本地代理服务器中建立一个本地代理端口列表,每个本地代理端口对应一个远程服务端的地址;在远程代理服务器中设置一个远程代理端口;
步骤2:本地代理服务器实时监听所有本地代理端口;
步骤3:判断是否有本地代理端口接收到来自本地客户端的连接请求,如果有,进入步骤4,否则返回步骤2;
步骤4:本地客户端与被请求连接的本地代理端口建立连接L1;
步骤5:在本地代理端口列表中查找被请求连接的本地代理端口对应的远程服务端的地址;
步骤6:远程代理服务器实时监听远程代理端口;
步骤7:判断远程代理端口是否接收到来自本地代理服务器的连接请求,如果有,进入步骤8,否则返回步骤6;
步骤8:本地代理服务器与远程代理服务器的代理端口建立连接L2,并与远程代理服务器握手并告知要连接的远程服务端的地址A1;
步骤9:远程代理服务器根据获得的远程服务端的地址A1与相应的远程服务端建立连接L3;
步骤10:本地客户端与远程服务端之间通过连接L1、L2、L3进行数据传输。
图4为所述步骤10中进行数据传输的流程图,所述所述步骤10中进行数据传输的具体步骤如下:
步骤10.1:所述本地客户端和远程服务端发送和接收数据;
步骤10.2:所述本地代理服务器检测连接L1、L2上的可读状态,远程代理服务器检测连接L2、L3的可读状态;
步骤10.3:当本地代理服务器和远程代理服务器检测到任何一条与之相连的连接为可读时,读取该连接上的数据并写入到与之相连的另一条连接上;
步骤10.4:检测读写过程中是否存在异常,如果存在则断开并清理连接,终止本次代理通讯;否则清理缓存,并返回步骤10.2。
其中所述步骤10.3具体实现为:当本地代理服务器检测到连接L1为可读时,读取连接L1上的数据,写入到与本地代理服务器相连的另一条连接L2上;当本地代理服务器检测到连接L2为可读时,读取连接L2上的数据,写入到L1上;同时,当远程代理服务器检测到连接L2为可读时,读取连接L2上的数据,写入到与远程代理服务器相连的另一条连接L3上;当远程代理服务器检测到连接L3为可读时,读取连接L3上的数据,写入到连接L2上。
如图5所述,用于实现一种基于socket连接的数据传输方式的系统,包括本地客户端、本地代理服务器、远程代理服务器和远程服务端;
所述本地代理服务器与本地客户端相连,所述远程代理服务器与本地代理服务器相连,所述远程服务端与远程代理服务器相连;
所述本地客户端用于向本地代理服务器发送数据和接收本地代理服务器传来的数据;
所述本地代理服务器与远程代理服务器用于在本地客户端与远程服务端之间建立连接链路和进行数据传输;
所述远程服务端用于向远程代理服务器发送数据和接收远程代理服务器传来的数据。
其中,所述本地代理服务器中设有一个本地代理端口列表,每个本地代理端口对应一个远程服务端的地址;在远程代理服务器中设置一个远程代理端口。
其中,所述本地代理端口列表用于查找本地端口相对应的远程服务端的地址。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于socket连接的数据传输方法,其特征在于,具体步骤如下:
步骤1:在本地代理服务器中建立一个本地代理端口列表,每个本地代
理端口对应一个远程服务端的地址;在远程代理服务器中设置一个远程代理端口;
步骤2:本地代理服务器实时监听所有本地代理端口;
步骤3:判断是否有本地代理端口接收到来自本地客户端的连接请求,如果有,进入步骤4,否则返回步骤2;
步骤4:本地客户端与被请求连接的本地代理端口建立连接L1;
步骤5:在本地代理端口列表中查找被请求连接的本地代理端口对应的远程服务端的地址;
步骤6:远程代理服务器实时监听远程代理端口;
步骤7:判断远程代理端口是否接收到来自本地代理服务器的连接请求,如果有,进入步骤8,否则返回步骤6;
步骤8:本地代理服务器与远程代理服务器的代理端口建立连接L2,并与远程代理服务器握手并告知要连接的远程服务端的地址A1;
步骤9:远程代理服务器根据获得的远程服务端的地址A1与相应的远程服务端建立连接L3;
步骤10:本地客户端与远程服务端之间通过连接L1、L2、L3进行数据传输。
2.根据权利要求1所述一种基于socket连接的数据传输方法,其特征在于,所述步骤10中进行数据传输的具体步骤如下:
步骤10.1:所述本地客户端和远程服务端发送和接收数据;
步骤10.2:所述本地代理服务器检测连接L1、L2上的可读状态,远程代理服务器检测连接L2、L3的可读状态;
步骤10.3:当本地代理服务器和远程代理服务器检测到任何一条与之相连的连接为可读时,读取该连接上的数据并写入到与之相连的另一条连接上;
步骤10.4:检测读写过程中是否存在异常,如果存在则断开并清理连接,终止本次代理通讯;否则清理缓存,并返回步骤10.2。
3.一种实现权利要求1所述基于socket连接的数据传输方法的系统,其特征在于,包括本地客户端、本地代理服务器、远程代理服务器和远程服务端;
所述本地代理服务器与本地客户端相连,所述远程代理服务器与本地代理服务器相连,所述远程服务端与远程代理服务器相连;
所述本地客户端用于向本地代理服务器发送数据和接收本地代理服务器传来的数据;
所述本地代理服务器与远程代理服务器用于在本地客户端与远程服务端之间建立连接链路和进行数据传输;
所述远程服务端用于向远程代理服务器发送数据和接收远程代理服务器传来的数据。
4.根据权利要求3所述一种实现权利要求1所述基于socket连接的数据传输方法的系统,其特征在于,所述本地代理服务器中设有一个本地代理端口列表,每个本地代理端口对应一个远程服务端的地址;在远程代理服务器中设置一个的远程代理端口。
5.根据权利要求4所述一种实现权利要求1所述基于socket连接的数据传输方法的系统,其特征在于,所述本地代理端口列表用于查找本地端口相对应的远程服务端的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210472941.6A CN102984237B (zh) | 2012-11-20 | 2012-11-20 | 一种基于socket连接的数据传输系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210472941.6A CN102984237B (zh) | 2012-11-20 | 2012-11-20 | 一种基于socket连接的数据传输系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984237A true CN102984237A (zh) | 2013-03-20 |
CN102984237B CN102984237B (zh) | 2016-05-11 |
Family
ID=47857971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210472941.6A Active CN102984237B (zh) | 2012-11-20 | 2012-11-20 | 一种基于socket连接的数据传输系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984237B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539517A (zh) * | 2014-12-26 | 2015-04-22 | 深圳创维-Rgb电子有限公司 | 一种基于智能终端本地服务器的聊天方法及系统 |
CN108900365A (zh) * | 2018-09-11 | 2018-11-27 | 北京腾凌科技有限公司 | 数据传输方法及装置 |
CN109194637A (zh) * | 2018-08-23 | 2019-01-11 | 深圳点猫科技有限公司 | 一种用于教育云平台的内外网通讯方法及系统 |
CN109688113A (zh) * | 2018-12-07 | 2019-04-26 | 广州经传多赢投资咨询有限公司 | 基于加密通讯代理协议的数据传输方法 |
CN110602143A (zh) * | 2019-09-30 | 2019-12-20 | 东莞市李群自动化技术有限公司 | Pc端与远程设备实现通讯的方法、系统及可读存储介质 |
CN111865710A (zh) * | 2020-06-18 | 2020-10-30 | 王晓 | 一种基于公网环境下的远程设备调试系统 |
CN113965577A (zh) * | 2021-08-31 | 2022-01-21 | 联通沃音乐文化有限公司 | 一种智能切换Socks5代理服务器节点的系统与方法 |
CN114301968A (zh) * | 2021-12-31 | 2022-04-08 | 苏州科达特种视讯有限公司 | 服务端的访问方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652508A (zh) * | 2004-02-03 | 2005-08-10 | 华为技术有限公司 | 一种操作维护客户端与远程设备直接通信的方法 |
US20060190928A1 (en) * | 2005-02-04 | 2006-08-24 | Samsung Electronics Co.; Ltd | Device and method for managing communication equipment |
CN102780764A (zh) * | 2012-06-28 | 2012-11-14 | 北京奇虎科技有限公司 | 一种代理通信系统及方法 |
-
2012
- 2012-11-20 CN CN201210472941.6A patent/CN102984237B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652508A (zh) * | 2004-02-03 | 2005-08-10 | 华为技术有限公司 | 一种操作维护客户端与远程设备直接通信的方法 |
US20060190928A1 (en) * | 2005-02-04 | 2006-08-24 | Samsung Electronics Co.; Ltd | Device and method for managing communication equipment |
CN102780764A (zh) * | 2012-06-28 | 2012-11-14 | 北京奇虎科技有限公司 | 一种代理通信系统及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539517A (zh) * | 2014-12-26 | 2015-04-22 | 深圳创维-Rgb电子有限公司 | 一种基于智能终端本地服务器的聊天方法及系统 |
CN109194637A (zh) * | 2018-08-23 | 2019-01-11 | 深圳点猫科技有限公司 | 一种用于教育云平台的内外网通讯方法及系统 |
CN108900365A (zh) * | 2018-09-11 | 2018-11-27 | 北京腾凌科技有限公司 | 数据传输方法及装置 |
CN108900365B (zh) * | 2018-09-11 | 2021-04-27 | 北京腾凌科技有限公司 | 数据传输方法及装置 |
CN109688113A (zh) * | 2018-12-07 | 2019-04-26 | 广州经传多赢投资咨询有限公司 | 基于加密通讯代理协议的数据传输方法 |
CN110602143A (zh) * | 2019-09-30 | 2019-12-20 | 东莞市李群自动化技术有限公司 | Pc端与远程设备实现通讯的方法、系统及可读存储介质 |
CN110602143B (zh) * | 2019-09-30 | 2021-12-07 | 东莞市李群自动化技术有限公司 | Pc端与远程设备实现通讯的方法、系统及可读存储介质 |
CN111865710A (zh) * | 2020-06-18 | 2020-10-30 | 王晓 | 一种基于公网环境下的远程设备调试系统 |
CN113965577A (zh) * | 2021-08-31 | 2022-01-21 | 联通沃音乐文化有限公司 | 一种智能切换Socks5代理服务器节点的系统与方法 |
CN113965577B (zh) * | 2021-08-31 | 2024-02-27 | 联通沃音乐文化有限公司 | 一种智能切换Socks5代理服务器节点的系统与方法 |
CN114301968A (zh) * | 2021-12-31 | 2022-04-08 | 苏州科达特种视讯有限公司 | 服务端的访问方法、系统、设备及存储介质 |
CN114301968B (zh) * | 2021-12-31 | 2024-03-08 | 苏州科达特种视讯有限公司 | 服务端的访问方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102984237B (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984237B (zh) | 一种基于socket连接的数据传输系统及方法 | |
CN106686070B (zh) | 一种数据库数据迁移方法、装置、终端及系统 | |
US9774704B2 (en) | Home gateway, cloud server, and method for communication therebetween | |
KR20150013860A (ko) | 클라이언트 없는 클라우드 컴퓨팅 | |
CN101207604A (zh) | 一种虚拟机系统及其通信处理方法 | |
CN102209302A (zh) | 一种实现移动终端信息推送的系统及方法 | |
CN101461194A (zh) | 用于远程访问网络中的装置的方法和系统 | |
CN105743964B (zh) | 用于使用虚拟装置驱动器共享资源的方法及其电子装置 | |
JP4934148B2 (ja) | 複数のユーザアプリケーションにより共有されるユーザエージェントを有するsipマルチユーザ・メディア・クライアント | |
CN103051716A (zh) | 一种面向网络的串口设备重定向的方法及系统 | |
TWI595765B (zh) | 穿透網路位置轉換器之方法及通訊裝置 | |
JPWO2007039942A1 (ja) | 端末装置及びサーバ装置及び指令装置 | |
CN101291343A (zh) | 一种基于透明代理设备的远程控制方法及其系统 | |
CN102594886B (zh) | 浏览器与浏览器直通的方法、装置和通信系统 | |
CN101119374B (zh) | 基于互联网的小型计算机系统接口通信方法以及相应的发起设备和目标设备 | |
CN101547134B (zh) | 一种udp连接和tcp连接相互转化的方法、系统及中转服务器 | |
CN102137158A (zh) | 利用设备代理系统实现信息设备资源共享的方法 | |
CN105162899A (zh) | 用于在网络中通信的电子设备和操作电子设备的方法 | |
JP6393475B2 (ja) | 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム | |
CN110430478B (zh) | 组网通信方法、装置、终端设备及存储介质 | |
CN104797004A (zh) | 主从设备间实现自动组网的方法 | |
CN109639554B (zh) | 一种远程vlan实现方法 | |
CN102761780A (zh) | 智能遥控器获取媒体元数据的方法 | |
JP4900576B2 (ja) | プログラム、記憶媒体および画像処理方法 | |
CN110289979B (zh) | 桥接器及网络的管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |