解决方案 »
- 父窗口里的wm_drawitem是不是不能够用fillrect?
- 怎么把共享内存中的数显示在编辑框上
- 请问如何在MFC中用Serialize读取一个其他程序生成的文本格式的文件?
- 怎么实现查找功能
- 我给大家弄了些电影!!!!
- 为什么其他按钮都失效了?(散分!!!)
- 弱智的问题:怎样定义头文件?
- 孙鑫VC第四章,依样划葫芦, 不能编译
- 高分求救:关于ListCtrl的问题?急呀!!!!!!!!!!!!!!!
- 求救!使用ATL OLEDB访问ACCESS数据库的删除一个记录问题
- CMarkup类解析这样的xml文件会怎么处理数据
- 史上怪相!MFC Dialog 加入check box后通过classwizard 添加相应的bool 变量后程序可以编译但无法执行,只要一执行就会报内存错误,
两种方案:
1.所有的通信都通过服务器转发,就是二者直接的通信都通过服务器来中转,比如A发给B消息,就让A先把消息发给服务器,然后服务器再转发给B。
2.NAT穿透技术。俗称TCP打洞或UDP打洞。大意是这样的,拿UDP穿透来说,A想要和B通信,但是A无法直接连接到B,所以A就向服务器请求,告诉服务器我要和B通信,这时候服务器告诉B,A要和你通信,于是B就在特定端口向A发起连接,由于之前A是在向B发送连接,所以双方相当于都打通了自己内网的端口,二者之间就可以通信了。这只是大意,具体的还有一些实际问题需要处理。
详情请百度 UDP打洞。
总之,没有服务器的协同,两个不同内网ip是无论如何都不能通信的,端口映射除外,端口映射也相当于有服务器的协同。
更牛的是SKYPE(一种聊天软件),同一网段传文件时速度和局域网内传东西一样快。
2.在广域网有服务器,你们两者通过局域网的路由器共同访问这个服务器然后打洞,成功后一方直接连接另一方通信
3.双方的某个局域网的路由器开启DMZ映射,把自己影射到广域网,然后另一方直接通过对方广域网IP访问
还有其它
...