【socket】不在一个局域网下的两台电脑如何通信?

qq_34319012 2020-05-25 08:37:51
两台电脑,一台做服务端,一台做客户端,如果都连接家里的路由器,用socket可以通信上。
现在一台电脑连接手机热点(中国移动),另一台电脑连接家里的路由器(宽带网),请问IP地址如何设置才能通信上?或者需要其他工具?
...全文
3204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2020-11-14
  • 打赏
  • 举报
回复 1
QQ WeChat
m0_51198917 2020-11-13
  • 打赏
  • 举报
回复 1
抱歉,说错了。这得是同一个区域网里的才可以。发完了才想起来。真的抱歉。
m0_51198917 2020-11-13
  • 打赏
  • 举报
回复
用socket即可,一台做服务器,开端口,等待链接。客户端访问服务器的ip加端口。就可以通信了。
玢钡。 2020-11-13
  • 打赏
  • 举报
回复
引用 5 楼 qq_43707842 的回复:
博主,两台电脑都连路由器,ip地址不一样,怎么实现通信啊
使用Socket
  • 打赏
  • 举报
回复
似乎不行吧,现在小区宽带很多是NAT的,有的运营商不一定肯给你开独立IP,是要交钱的。
买个云虚拟机吧,也不是很贵,公网IP妥妥的。有钱的,就买花生壳的NAT穿透。不知道性能如何。
qq_43707842 2020-10-15
  • 打赏
  • 举报
回复
博主,两台电脑都连路由器,ip地址不一样,怎么实现通信啊
lx3275852 2020-05-26
  • 打赏
  • 举报
回复 1
总之,需要个公网IP。 1.直连。你家里的宽带别用路由,猫直接连电脑,这台电脑作为服务端。 2.代理方式。3楼说的TeamViewer那种,需要公网做个代理,转发请求。A做服务端,代理做客户端连A,同时做服务端被B连,转发A、B的请求,间接实现B连A。 3.端口映射。你的路由,可以设置端口映射(端口转发),家里电脑做服务端(如端口9111),另一个做客户端,连路由(如端口9222)。将路由的9222端口,转发到家里电脑的9111端口,间接实现A,B连接问题(其实原理和2代理方式一样) 4.打洞技术。(详情建议去百度TCP打洞)。大概就是,需要公网先建立临时服务端C,A、B做客户端连C。C把A做客户端的IP、端口告诉A、B。然后AB断开和C的连接,C也可以关服务了。A用C告诉AB的IP和端口bind做服务端,B做客户端连A的IP和端口。之后就是AB直连了,没C的事了。【建议家里电脑作为A端,不知道什么原因,手机当热点的服务端,打洞没成功。当然你可以尝试】 还有其他方式,但不管啥方式,必须要有个公网IP。
sdghchj 2020-05-26
  • 打赏
  • 举报
回复 1
两者在不同的网络的内网,不能直接通信。 要么找运营商要宽带的公网ip地址(网络地址转换后的内网ip也行), 要么找一台在公网的服务器做为中间转发服务器,参考TeamViewer的原理。
smwhotjay 2020-05-25
  • 打赏
  • 举报
回复
需要一方有外网ip..另一端连接外网ip端口即可通信。
Simple-Soft 2020-05-25
  • 打赏
  • 举报
回复
如果你的手机热点是公网IP的话,才行,否则做不到,用一些代理软件,可以把你的家里的电脑设置成公网IP,手机就可以访问了

65,180

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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