关于两台不同局域网内的主机通信的问题(300分)

  • 主题发起人 主题发起人 凌晨
  • 开始时间 开始时间

凌晨

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现两台不同局域网内的主机之间的TCP或UDP通信,比如

主机A: 局域网内的IP为:192.168.0.10,通过服务器或路由器连接到公网,服务器或路由
器的公网IP为218.5.12.66

主机B: 局域网内的IP为:192.168.1.18,通过服务器或路由器连接到公网,服务器或路由
器的公网IP为211.97.146.33

请问如何实现A与B的TCP或UDP连接?当防火墙存在的情况下又如何实现?

 
只要A机、B机能ping通,能够互相访问,
一般的tcp及udp通信都不受影响,维一不同的是udp的组播模式,数据包会被丢掉。
 
这种环境也能ping通?
 
哦?你的那个是网内的IP地址?好像不行。
 
谁要是能回答对这个问题,那他真是网络黑客级别的高手啦!
 
如果有一台固定IP的服务器C,比如IP为202.5.10.20,A与B都知道这个IP,如何利用C进行A
与B之间的通行呢?
 
这不过是跨网段编程,我也很想知道怎么实现的!
 


具体请看http://www.delphibbs.com/delphibbs/dispq.asp?lid=1404862

 
UDP不需要连接。不可以实现;
TCP可以实现。但是要在二个服务器上安装SOCK5代理
要用API。如果用现有控件。只能通过一个代理。
192.168.0.10(请求)--218.5.12.66(SOCK5)-211.97.146.33(SOCK5)--192.168.1.18(目标)
如果需要代码请加分数
 
同意waxing,需要ip地址转发。
 
防火墙 要打开 你使用的端口
 
我写的远程管理软件可以作到。前体就是二个服务器上有SOCK5代理。
有现成的程序证明
 
代理可以实现没错,但要在服务器上执行代理程序,这不是我们想要的答案。
以下给出一个具体情况:

主机A:192.168.0.10,启动TIdUDPServerA,本机绑定192.168.0.10:6000,服务器公网IP为218.5.12.66
主机B:192.168.1.18,启动TIdUDPServerB,本机绑定192.168.1.18:6000,服务器公网IP为211.97.146.33
固定IP服务器C:202.5.10.20,启动TIdUDPServerC,本机绑定202.5.10.20:1025

TIdUDPServerA 发信息至TIdUDPServerC,TIdUDPServerC得到 PeerIP 为218.5.12.66,PeerPort为10069,此时
TIdUDPServerC回复信息至218.5.12.66:10069,A可以收到,因为A的服务器可以自动实现转址(UDP转址默认保留时间是1分钟);

TIdUDPServerB 发信息至TIdUDPServerC,TIdUDPServerC得到 PeerIP 为211.97.146.33,PeerPort为9865,此时
TIdUDPServerC回复信息至211.97.146.33:9865,B也可以收到,因为B的服务器也可以自动实现转址;

问题是TIdUDPServerB发信息至TIdUDPServerA(218.5.12.66:10069),A收不到,这种情况下A、B
如何互发数据?


 
代理服务器上做这样的中转麻烦而且问题很多!
 
为什么不用标准的代理SOCK5呢?不管是谁。握手通过认证通过就转发
 
后退
顶部