通信问题,紧急,求救!!!在线等待!

liangyiqing 2003-08-20 03:49:15
假设A机器是局域网内机器,B机器是因特网上一机器,M机器是A机器所在局域网的连接因特网用的出口机,如果A与B通信,得经过M。

假如A的IP为192.168.0.5,M的固定IP为202.15.10.16(假设),则AB通信是,在B处显示出来的A的IP是M的IP,端口M随机分配的端口。

问题:B如何与A通信?或者这条通路如何保存?
或者,假如A在一个固定端口监听,也就是说如果B知道A的局域网内部IP,知道它监听的端口,也知道M的IP和端口,怎么样才能把消息送到A?
...全文
18 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Satanbf 2003-12-18
  • 打赏
  • 举报
回复
内网机器主动连接,产生通路,外网机器可以根据这条通路和内网机器通信,但必须是UDP的!
liangyiqing 2003-08-20
  • 打赏
  • 举报
回复
就比如QQ一样,在局域网中上QQ,QQ服务器是怎么和QQ通信的呢?
liangyiqing 2003-08-20
  • 打赏
  • 举报
回复
UDP可以做到B发送数据到A?请教大侠,应该怎么弄?
如果内网机器不通过代理呢?
javahui 2003-08-20
  • 打赏
  • 举报
回复
UDP可以!不需要保持连接,可以做到B发送数据到A。不过UDP可能丢包。

内网机器好象通过代理也可以实现监听的,原理我还没有搞清楚。这两天在做一个SOCKS5代理程序,TCP部分好了,UDP和BIND的还没弄好~
liangyiqing 2003-08-20
  • 打赏
  • 举报
回复
可是实际应用中不可能为了保存通路程序一直保持传输数据不停止,因为那样太耗网络资源,有没有别的办法让B与A通信呢?如果用的是UDP协议。
javahui 2003-08-20
  • 打赏
  • 举报
回复
你保持TCP连接不要中断嘛。

liangyiqing 2003-08-20
  • 打赏
  • 举报
回复
谢谢大侠的回复!
那如果A主动联系了B之后,AB之间应该就有一条通路,那么B就可以沿着这条通路联系A,可是,请问,应该如何才能保存住这条通路呢?
javahui 2003-08-20
  • 打赏
  • 举报
回复
不能。A可以主动与B联系,但B无法主动联系A。

对于B来说,它根本不知道A的存在,它以为跟它通讯的是M。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧