广域网中的信息发送问题(类似QQ)完美解决300分(100分)

  • 主题发起人 主题发起人 999roseto347
  • 开始时间 开始时间
9

999roseto347

Unregistered / Unconfirmed
GUEST, unregistred user!
问题的提出:
三台机子A、B、C位于不同地区,A、B拨号上网或通过代理上网,C有公网IP。要在A、B间实现点对点信息发送(类似QQ),如何实现?

我搜到的网上资料:
1、A、B上线时向C登记自己的公网IP和端口
2、A向B发信息时,向C获取BIP及端口
问题在于:A、B如何向C登记自己IP及端口,
注意代理上网的这种环境

 
请关注 http://www.hysofts.com
 
c的地址,不会变的吧
如果这样不就简单了
ab连接c不就可以了?


如果不是的,那么c申请dns啊
 
我用udp可以实现这种功能,不过使用代理的udp隔一段时间后再发送信息时,会自己改变广域网的端口,不知道是不是我没有绑定ip和端口的原因,最近我一直在研究upd的这个功能
 
1.首先進行動態域名解析﹐當然C這點必須是固定的WWW服務器名。客戶端進行WWW的IP解析。
2.客戶A通過C與B進行處理﹐當然也可以A與B直接交換。
 
to:pcmagic,那个网站找不到我要的东西啊
to:carmark, C的地址不变。A或B连接C时,C可以获取A或B的端口和IP吗?如何实现呢?
to:jiajiajia888, UDP如何实现?udp控件名.bind可以绑定IP和端口
to:hiyaolee,不明白
 
VC开发网站正在讨论这个问题,你可以去看看
这个问题和代理的关系很大
 
to:tty_xiaotao, 能给我网址吗?
 
hiyaolee说的方法就是tcp/ip
我的计算机是用代理上网的,
如果你有一台真实ip的电脑,和一台用代理的电脑
我现在就可以写个udp和你测试一下,我以前测试过没有问题。
我可以把写的客户端的源代码给你。我觉得我的方法已经解答了你的问题。
如果测试成功,你不要不结帐哦,呵呵!
 
好简单。A或B向C发送数据的时候,如果用UDP的话显然只能用SendTo而不需要TCP中的
Connect。C的IP固定才能给A或B提供连接的机会。C一直在某一个端口用RecvFrom监听。
A或B将数据发往C的时候,RecvFrom自然会返回A或B的IP以及其实际的远程端口。在这
种情况下,代理服务器所作的端口映射已经没有意义了。C只要能够向A或B发送数据就
必然知道A或B的IP及端口。
好象有点罗索了。不清楚的地方再问我好了。
 
晕了,搞了大半天,发现环境变了。
jiajiajia888, barton,hiyaolee及楼上各位:我另开一贴感谢你们在本贴的回答。
各位请到:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2016975
取分
 
本贴继续
新环境及新问题:
在主机C的前面增加一路由器D,D拥有固定公网IP,C做D上做端口映射
(如,假设C的IP为192.168.0.123则在D上映射端口4321到192.168.0.123)
A或B要如何连接C?
是连接D的IP,端口4321吗?
另外:在UDP的接收事件中的Port是否就是对方的侦听端口,向这个端口发送就可以了?
 
http://www.copathway.com/cndevforum/subject_view.asp?subject_id=21228&forum_id=25

讨论的网址
 
谢谢tty_xiaotao提供线索。 解决了心中的两个问题。可怜我的英文不行。哪位兄弟帮一把,简单译一下?全文翻译一点用处都没有。
The four types defined in [6] are:
Full Cone: A full cone NAT is one where all requests from the
same internal IP address and port are mapped to the same
external IP address and port. Furthermore, any external
host can send a packet to the internal host, by sending a
packet to the mapped external address.

Restricted Cone: A restricted cone NAT is one where all requests
from the same internal IP address and port are mapped to
the same external IP address and port. Unlike a full cone
NAT, an external host (with IP address X) can send a packet
to the internal host only if the internal host had
previously sent a packet to IP address X.

Port Restricted Cone: A port restricted cone NAT is like a
restricted cone NAT, but the restriction includes port
numbers. Specifically, an external host can send a packet,
with source IP address X and source port P, to the internal
host only if the internal host had previously sent a packet
to IP address X and port P.
Symmetric: A symmetric NAT is one where all requests from the
same internal IP address and port, to a specific
destination IP address and port, are mapped to the same
external IP address and port. If the same host sends a
packet with the same source port, but to a different
destination, a different mapping is used. Furthermore, only
the external host that receives a packet can send a UDP
packet back to the internal host.
 
晕,金山糍粑呀
 
tty_xiaotao老兄:金山糍粑和金山的全文翻译对我来说一样啊,圆锥体把我搞晕了。
 
有几个单词我也不懂意思,不过大概意思能看明白:
我就抛砖引玉,简单翻译一下:
[6]有以下四种类型:
1。完全:完全型的nat网络是指,相同内部的ip地址和端口的所有应答映射到同样的外部ip地址和端口。同时,外部主机可以向这个映射的外部地址发送包,从而到达发送给内部主机包的目的。
2。限制:限制型的nat网络是指,从相同内部ip地址和端口的所有应答映射到同样的外部ip地址和端口。与完全型不同的地方是:只有内部主机先向一个外部主机发送一个包,外部主机才能向内部主机发送数据。
3。端口限制:端口限制性和限制型相似,但是他同时限制端口。只要当内部主机先向一个外部ip和端口发送一个包,外部主机才能根据源ip和端口向内部主机发送包。
4。对等型:一个对称型nat网络是指:从相同ip地址和端口到目标ip和端口所有应答映射到相同的外部ip和端口。相同端口的主机发送的目标不同,所使用的影射也不同。同时,只要外部主机收到一个包后,才能发送udp包返回到内部主机。
 
jiajiajia888:
>>相同内部的ip地址和端口的所有应答映射到同样的外部ip地址和端口。这句很不好理解啊,你是怎么理解的?

TO All:好了,根据现有的东东,我去试一下,成功了就回来结贴。
 
就是说,同一个ip地址和端口的所有应答,在同一个外部ip地址和端口上。其它ip地址或者这个地址的其它端口的映射不在这个ip地址和端口上。主要是强调一个ip地址和端口决定了唯一的一个外部映射。
 
最近较忙,过几天回来结贴。大家没意见吧?
 
后退
顶部