高分求解入门问题!(在线等待)

futurebuilder 2005-01-13 01:04:30
一个很简单的聊天程序,就是用的clientsocket,另一个用的serversocket,局域内能连上,但现在双方在不同的局域网内,中间是internet连接,能连上吗?不能连的话要怎么解决这个问题呢?
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkbao 2005-01-14
  • 打赏
  • 举报
回复
三楼说的应该就可以了!其实最主要的是你的IP地址
3996906 2005-01-14
  • 打赏
  • 举报
回复
理论上

实际不能连上,至少没有可用性,而且麻烦

因为你穿不透防火墙

怎样做就复杂了,网上有资料,但是写的不好

你搜防火墙的穿透 NAT之类的看看,我只能说说原理

首先:路由器是a类的,路由器后面是c类的

a-a a-c c-a 是不会有问题的,问题在c-c上面

流程先是c-a 通过server a-c,最后才c-c

所谓打洞就是c(局域网内的机器)上的一个udp端口连接到自己的a(路由器)上去,a给你分配个端口对应你本地的这个连接,以后你这个连接在外面看起来就是你的路由的ip和它给你分配的端口,这就是洞了,两边通过服务器的协调,都知道对方连接的ip和端口了就建立连接了,双方都看不见对方局域网类的ip和端口,实际上,最后形成的是c-a-a-c,数据是你的路由器转给你的,只要这个链路是活的(你没关掉,路由器也没回收)就是 p2p了

另:路由器回收时间一般是:空闲300秒

如果你的a(路由)限制你c-a了那只有对方可以连接你,同理,对方也限制了你们就只能中转了,好在这种机会不多


特招 2005-01-14
  • 打赏
  • 举报
回复
用IP地址加端口号
Lonelywolf1899 2005-01-14
  • 打赏
  • 举报
回复
有IP地址和Port就可以了
空中猎手 2005-01-13
  • 打赏
  • 举报
回复
可以滴,如果服务端有固定的IP地址,并且端口要映射过
JedyWoody 2005-01-13
  • 打赏
  • 举报
回复
可以

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧