[问题] Socket连线问题

楼主: peilin0407 (嗨啾)   2016-06-15 11:55:29
各位大大好,想请问一下
假设我有两台电脑
其中A电脑是固定IP为:101.1.1.1
然后在别的地方有一台网络分享器的固定IP假设是:202.2.2.2
接着B电脑透过此网络分享器得到的虚拟IP是:192.168.3.3
透过TcpSocket的机制,A电脑如果架TcpServer
B电脑可以透过A的IP连到对方那里
而A电脑就可以取得B电脑的TcpSocket,双方确实可以互相沟通
但因为我实作的程式中,A电脑想传一些像是声音、视讯之类的到B电脑
我想到的就是用Udp来传送这些资料
所以我在B电脑开启了一个UdpSocket并监听5000的Port
但问题就卡在这@@
我在A电脑用UdpSocket传送资料的时候,
并没办法传送该资料到192.168.1.1:5000,毕竟这是虚拟IP
但我如果传送到101.2.2.2:5000,对方也收不到
(无法设定对方分享器的Mapping)
想请问这样的状况该怎么办@@
还是说这类情况的话,声音、视讯之类的东西只能透过Tcp来传送吗?
拜托各位帮帮忙
谢谢
作者: fatrabitree (胖兔子)   2016-06-15 12:50:00
Hole punching
作者: sosokill (vieux)   2016-06-15 19:31:00
router设定DMZ, Virtual Server
作者: laladeer (laladeer)   2016-06-16 00:02:00
上网查DMZ设定 很简单的
作者: l321122 (RTlnK)   2016-06-16 01:00:00
这时候应该是B用udp主动向A连线,A就可以根据udp的sourceIP把资料传回给B这时候B的router会自动mapping,而不用做port forwarding
楼主: peilin0407 (嗨啾)   2016-06-16 20:28:00
了解了,感谢各位大大的帮忙,让我学到了很多

Links booklink

Contact Us: admin [ a t ] ucptt.com