两个内网节点不能映射无法直接连通,想通过一个公网服务器,实现两个节点的TCP通信。
最后的结果就像两个点直接通信一样。能否在服务器上安装一个软件,实现信息转发。
QQ是p2P方式,可否有什么简单的、装个软件可以的方式。
解决方案 »
- VS2008编译的exe在win7下出现APPCRASH 错误的问题
- VC++ 转evc
- 小问题求问
- 我在CTreeCtrl的派生类中重载PreTranslateMessage()拦截右键消息,弹出一个菜单,可为什么点击菜单上的项没反应?
- 十分感谢各位朋友的帮助! 谢谢!
- 关于多进程访问数据库的问题。。请教大家
- 请教高手一个问题,,,,,,,,,,,,,,,,
- database应用程序
- 是中国人的就来看!!!
- 感谢各位大虾热情帮助,不好意思,这里还有两个小问题 ^_^
- 工程包含webbrowser,但是换个电脑后DEBUG失败,COleControlSite::FreezeEvents(BOOL bFreeze)里有空指针,为啥?
- 在CMainFrame类里如何调用View类的方法???
A1和B1分别是2个不同内网中的2台机器,这两台电脑建立自己的UDP连接之后,一般向服务器的连接用一个UDP的socket,聊天或者文件传输或者video之类的,每样用一个UDP的socket。需要说明的是,A1对应外网的IP和端口是经过NAT的,IP肯定是A1网关(A)的,端口经过NAT后比如说是PA1Connect,PA1Chat等等,同样,针对B1也是,PB1Connect,PB1Chat等这样,反过来看,A1和B1针对外网的IP和端口都是经过NAT的,这样无论哪一边给另外一边都不能直接发消息,因为从网关来说,PA1Chat从来没有向PB1Chat发送过消息,这样从PB1Chat发送过来的消息直接被丢弃,A1服务器根本接收不到从PB1chat发送过来的消息,这样就必须做UDP连接,让PB1Chat先向PA1Chat发送一个消息,消息被PA1Chat丢弃,但是反过来,PB1Chat向PA1Chat发送过消息,这样PB1Chat就能接收到从PA1Chat发送过来的消息,这样来回发完之后,两边的UDP连接就建立成功了。记住,如果要做TCP连接,必须有一个在另外一个能直接联系到的地方,即网络地址没有经行过NAT,因为TCP必须Connect。
如果只是简单的转接一个TCP连接,写个小程序就可以实现。两个客户端分别连接服务器建立连接,服务器负责转发就可以了如果是多个连接,楼主又不想动手的话,装个VPN软件就可以了
两台机器就像在同一个局域网内