我的程序有客户端和服务器端,每端都有两个winsock控件
一个udpwsk为UDP协议,一个tcpwsk为TCP协议,程序运行时先连好udpwsk,然后由服务器端的udpwsk向客户端的udpwsk发送指令,在客户端的udpwsk的DataArrival事件下,触发客户端的tcpwsk去连接服务器端的udpwsk。在内网中一切正常!可在internet网中却连不上tcp!!(具体如下:)客户端 服务器端udpwsk --连接成功--> udpwskudpwsk <--建立tcp连接的指令---- udpwsktcpwsk ---tcp连接---->(失败) tcpwsk
我在内网中,通过路由器共享上网,我已经进行了端口映射。
没有固定IP,我的tcowsk.RemoteHost用的是从“花生壳”申请的动态域名。请各位帮我看看是那里错拉?
一个udpwsk为UDP协议,一个tcpwsk为TCP协议,程序运行时先连好udpwsk,然后由服务器端的udpwsk向客户端的udpwsk发送指令,在客户端的udpwsk的DataArrival事件下,触发客户端的tcpwsk去连接服务器端的udpwsk。在内网中一切正常!可在internet网中却连不上tcp!!(具体如下:)客户端 服务器端udpwsk --连接成功--> udpwskudpwsk <--建立tcp连接的指令---- udpwsktcpwsk ---tcp连接---->(失败) tcpwsk
我在内网中,通过路由器共享上网,我已经进行了端口映射。
没有固定IP,我的tcowsk.RemoteHost用的是从“花生壳”申请的动态域名。请各位帮我看看是那里错拉?
解决方案 »
- VB能否把Control对象转为一个TEXTBOX对象?
- 怎么利用ADO控件操作远程MYSQL数据库?
- 为什么我照搬msdn中使用winsock控件例子出错
- 我想从vb转为c++ sdk,各位发表你们的意见吧
- 急:OLE字段中的*.dwg(或*.doc)文件在不使用临时文件作桥梁的情况下能否直接让AutoCAD(或word)打开并保存?
- 如何实现类似ACDSee缩略图图片浏览功能?
- 有谁用10M的HUB做过C/S系统?
- 请问在哪可以下载IIS4或IIS5?
- 怎樣把在DataReport中的報表轉存為BMP 圖片文件?歡迎搶分.....
- dbgrid控件的使用????
- 怎样把一个Label显示在一个Image上面
- 高手进来,求"溯雪"的启动画面
(telnet ip port),如果连接不上,有可能是防火墙屏蔽了这个端口,或者连接到的地址不对(根据udp数据确定源地址有可能出错吧)。
以上都不是的话,TCP连接代码有问题,注意:TCP要接受连接的
那要看你的NAT是Symmetric NAT 还是Cone NAT 了,Cone NAT的端口隐射后是固定的。Symmetric NAT 的端口是顺序分配的。你先进行UDP连接,这个端口被占用,再进行TCP连接肯定就连不上了。
根据大家说的我在把情况说清楚点,
1)防火墙已经关闭
2)tcp和udp用的不是同一个端口
3)端口映射时我是把所要的端口号,直接映射在我的内网IP上的.我不知道是不是在
udpwsk.DataArrival事件下,触发连接,而发生了错误.还是TCP连接所需的时间太长,(不过我等了大概3分钟还是不能连上!)还请大家在帮我看看~十分感谢~
照你现在的情况也很难说...先试试就单个TCP连接实验吧.免得搞在一起,弄糊了~呵呵!
我说一点,我说的这个端口是指本地端口.内网机器通过NAT上网过程是这样的.比如内网机器的地址为168.192.0.1:1234 ,NAT地址为 202.197.11.15 ,服务器地址为202.144.12.3:4321当有个数据包通过NAT后,NAT会分配给本机一个端口比如40000,这个就是所谓的映射端口.这时本机发送一个包到网路上,这个包的源地址会变成202.197.11.15:40000,目的地址是202.144.12.3:4321.如果是Cone NAT 本机所有的连接都会指向40000端口,而Symmetric NAT 就有可能是40001 .....服务器端通信的时候连接地址该是202.197.11.15:40000 不是168.192.0.1:1234.你该先试试单个TCP连接实验.也可能是你代码的问题.
如果是这样的话,我该如何确认映射是否成功呢?并该如何解决呢?如果只做tcp连接的话,是正确的!还请老哥和大家帮我在看看~
谢谢~
没法测试
以前也没用过,所以没办法说出解决方案
能不能给一点资料或者软件下载地址我
我回去测试一下
[email protected]
如果是我,想测试是否端口影射成功的话,我会把那个端口作为BT的监听端口,然后跑去下载!若有远程发起的连接就证明成功了!讲多无谓...证明影射成功,但问题还没解决的话,贴出代码!
TCP连接不能连接,你可以设置短点来一步步检查,是不是哪里使用了on error resume next,所以看不多报错了了.看一下连接不成功时winsock的状态是什么.