在internet通过udp协议通讯,拔号,宽带间没有问题,当采用移动无线上网时,存在问题...详情请进(200分)

  • 主题发起人 主题发起人 tl_lyq
  • 开始时间 开始时间
T

tl_lyq

Unregistered / Unconfirmed
GUEST, unregistred user!

移动无线上网的微机(A)向宽带上网的微机(B)发送数据,B可以接收,B回发时A无法接收到。不知为何?
而B与其他宽带及拔号连接时,可以互通信息。
我在程序中采用固定端口。
是否A发给B信息时B接收的端口发生了变化?
回复人: lgqTiger(【老虎】) ( ) 信誉:100 2004-1-30 15:09:48 得分:0



你B给A法信息时又没有指定A的当前端口?



Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:18:35 得分:0



在程序中已经将端口固定了


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:18:37 得分:0



A机的IP地址是固定的吗?


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:20:39 得分:0



局域网中用程序没问题,宽带上网微机与局域网间也没问题,宽带与宽带间出没问题.无线与其他时有问题。


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:23:51 得分:0



还有移动上网的是通过联通或是移动的服务器接入Internet的,移动上网的A就相当与联通或是移动的“内部网”的一部分,因此B是无法访问到A的,因为联通或是移动的服务器不允许B访问A。


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:32:44 得分:0



A(宽带)机IP不固定。B宽带IP固定


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:33:03 得分:0



写错
A(无线)机IP不固定。B宽带IP固定



Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:35:59 得分:0



如果是A(无线)机IP不固定,B宽带IP固定,我想知道你是如何使B机找到A机,并发数据给它的,就我所知,好像做不到,而且即使A机地址固定了,也可能因为我上面说的无线上网的问题造成B机无法访问A;


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:44:15 得分:0



就是啊,现在A发送登录信息至服务端B,B可以收到,B按A传来的IP将在线列表发给A时,A无法接收到!痛苦!


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:49:34 得分:0



那肯定是我刚刚说的无线接入的问题造成的。
如果方便的话,B到A建议用TCP方式试试吧,不过我也不能保证肯定能行,
还有,如果B也是无线上网的话,则B可以访问A;


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:51:30 得分:0



你用的是CDMA还是GPRS?要不你可以和联通或是移动商量开通B到A的服务,那就要签协议了。


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:53:59 得分:0



是不是联通的服务器将A的端口进行了映射
如果我用我的服务端接收A发来的端口与A通讯,而不用程序中固定的端口,是否就应该可以了。


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-1-30 15:55:52 得分:0



这位大哥有uc号吗,我们在uc上讨论如何,解决一定加分。
我的UC号80505315


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:57:35 得分:0



你试试吧!
不过我觉得可能不是,而是因为联通的服务器拒绝外部的机器采用UDP方式访问内部机器


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 15:58:19 得分:0



UC?我只有QQ号,而且上班时间我可不敢开QQ,呵呵!


Top

回复人: CunningBoy(皮皮^-^逗逗@京沪爱情线.com) ( ) 信誉:100 2004-1-30 16:01:16 得分:0



我觉得你还是用TCP试试吧,如果还不行,我也不知道如何解决了。


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-01-30 16:17:00 得分:0


ok.看来只能这样了。我试试吧。


Top

回复人: lyq(阿飞) ( ) 信誉:95 2004-01-31 16:07:00 得分:0


程序进行调整并测试:
服务端测试:收到A PeerIP为221.X.X.X True IP为10.X.X.X PeerPort为25321,
按221.X.X.X Port:25321 发送信息,为何A不能收到呢?
移动公司服务器难道不将信息自动转发至A吗?
 
upupupupupupup
 
upupupupupupup
 
上面有人提到:“还有移动上网的是通过联通或是移动的服务器接入Internet的,移动上网的A就相当与联通或是移动的“内部网”的一部分,因此B是无法访问到A的,因为联通或是移动的服务器不允许B访问A。”给你一个解答了。
我们的做法是:对于传输大数据量的数据,采用UDP方式。B先用TCP发小数据量给A,A再用UDP回复B,这样B可以获得一个A的UDP的IP地址和端口端口号。然后B和A就采用一问一答的方式进行UDP通讯。注意:A的UDP IP地址和端口都是临时的,不断变化的,生存期好像最大是7秒,B在7秒内B可以使用A的这个临时IP地址和端口号。
 
我在客户端隔10秒发送一次数据到服务端,服务端可以收到发来的信息:IP,端口,都不变。无线笔记本IP也不变啊。除非断开重连,其IP才变,但服务端接收的移动的IP不变,只是端口变化.
 
我也遇到同样的问题了,本来采用的是一问一答的方式是可以的,但是后来情况变了:移动无线上网的微机(A)需要每隔一段时间,比如说10秒或者更长时间往B发数据时,这种情况下,B再往A发UDP数据就不可以了,奇怪。
 
tl_lyq朋友: 用一问一答的方式试试,一定可以了。
至于为什么客户端每隔一段时间发一条UDP数据给服务端,服务端再发UDP数据(不是应答客户端的数据)客户端就收不到,哪位大侠能给个指点?
 
To GipsyCN:
我按以下:
A(无线客户端)
B(宽带服务器,IP固定)
c(局域网客户端)
程序目前流程:
A上线通知B,B记录A信息:A peerip,A peerport,A trueIP,A Trueport,B同时将A发送信息至C,C获得A在线的列表。
发送信息时,C先发至B,由B根据记录的A信息进行转发,目前情况是C保存有A的两条信息,一条是A上网时真正的IP,在程序中固定的端口,一条A上线时,转发A上线信息的移动服务器对应的IP,Port.
我的测试:
B---将C信息按A TrueIP,TruePort 发送,A接收不到。
B---将C信息按A 转发时的移动服务IP,peerPort发送,A无法接收。
 
第一种情况:B---将C信息按A TrueIP,TruePort 发送。。。
肯定是不行的。
第二种情况,如果在短时间内完成应该是可以的。
 
:第二种情况,如果在短时间内完成应该是可以的。
我监测到的IP,及端口却一直不变啊。为什么还有时间限制呢。难道是A与移动服务器音的连接丢失了吗。
 
帮助提前
 
太忙了,这个问题先暂时放一放。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
843
import
I
I
回复
0
查看
680
import
I
I
回复
0
查看
806
import
I
后退
顶部