社区
Java SE
帖子详情
Java socket 跨路由连接
baiyangliu
2012-06-03 02:14:54
问题是这样的:
我将自己的机器作为ServerSocket端,但是家里装了路由,IP为192.168.0.10。这样一来,不在此路由下的机器如何连接本机呢?我知道有一种方法可以,那就是将本机在路由器上做映射,直接暴露给公网,那么客户端只需连接路由器的IP就可以了。除此之外,有别的方法么?
...全文
141
6
打赏
收藏
Java socket 跨路由连接
问题是这样的: 我将自己的机器作为ServerSocket端,但是家里装了路由,IP为192.168.0.10。这样一来,不在此路由下的机器如何连接本机呢?我知道有一种方法可以,那就是将本机在路由器上做映射,直接暴露给公网,那么客户端只需连接路由器的IP就可以了。除此之外,有别的方法么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baiyangliu
2012-06-03
打赏
举报
回复
再次表示感谢!
MiceRice
2012-06-03
打赏
举报
回复
这种是即时通讯工具大多有的能力,所谓智能发现局域网络,然后文件传输直接借助局域网络实现。
过程其实很简单,QQ服务器会发现两个QQ的公网IP一致,那么说明这两个QQ是共享上网的(甚至可能同机);局域网的本地IP,QQ客户端是可以知道的,然后在大数据量传输前,简单探测下对方IP是否可到达就行了。
其实如果你的公司规模较大的话,也会发现有时候通公司两个不同Wifi的QQ,传文件就仍然是走外网QQ公司服务器来中转。
baiyangliu
2012-06-03
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
P2P一般来说必须有1方是可以在公网上被直接访问的。
现在大多数ADSL路由器支持uPnP,而迅雷之类的软件可以通过uPnP协议自动开启路由器的映射端口,那么就相当于自动化实现了“将特定端口直接开放公网”的过程。
另一种情况就是只能走服务器转发,你注意到迅雷提供什么VIP加速;其实就是给你提供了它帮你转发的加速模式,当然还包含了帮你解决跨运营商网段的加速支持。
无第三种……
[/Quote]
非常感谢你的回答,我还有个疑问。相信你也注意到了,在同一路由(或同属于一个局域网)中用QQ传文件的速度一般是10M/s的,这说明两台机器是直接进行通信的,那么它们是如何取得对方的地址的呢?我理解的是既然有路由器,那么QQ服务器看到的两台主机的IP应该都是路由器的。
MiceRice
2012-06-03
打赏
举报
回复
P2P一般来说必须有1方是可以在公网上被直接访问的。
现在大多数ADSL路由器支持uPnP,而迅雷之类的软件可以通过uPnP协议自动开启路由器的映射端口,那么就相当于自动化实现了“将特定端口直接开放公网”的过程。
另一种情况就是只能走服务器转发,你注意到迅雷提供什么VIP加速;其实就是给你提供了它帮你转发的加速模式,当然还包含了帮你解决跨运营商网段的加速支持。
无第三种方式。
baiyangliu
2012-06-03
打赏
举报
回复
类似的,P2P是如何进行连接的呢?
如果我要做一个公网聊天软件,如何让两个客户端(不在同一路由器下)直接通信而不是走服务器转发呢?
MiceRice
2012-06-03
打赏
举报
回复
你说的模式应该是将整机暴露出去,所谓路由上的DMZ设置。
另一种方式是在路由上做端口映射,将路由上的某个端口直接映射到机器的某端口上。
立足于你自己环境来做的话,只有这两种模式。
基于短信应用的SP服务平台
java
源码
*关键技术:系统使用了线程池、消息队列、数据库
连接
池、
socket
连接
池等技术来保证系统的运行效率以支撑较大的应用需求。 功能介绍 *支持通过
JAVA
和WEB脚本进行业务逻辑开发。 *灵活的业务路有功能可根据命令字和...
一个
Java
码农的Node之旅
如果BOSS要求你在短期内快速实现一套聊天...2.周边完善,重连、
路由
、隔离、单播、广播等都已实现。3.丰富的客户端支持,涵盖了浏览器端、Android、iOS。在仔细研读了Flexi传授如何说服自己的老板采用Node.js,并成功说
Java
大数据培训学校全套教材--10)
Socket
"
java
大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的
java
培训学校主流... 本门课程为"
java
大数据培训学校全套教材"系列课程的第十篇,学习TCP,UDP,URL类让大家对
Socket
编程打下好的基础。
java
socket
短
连接
_
socket
长
连接
和短
连接
的区别
长
连接
与短
连接
的区别(tcp
socket
http概念原理是一样的) 一、长
连接
与短
连接
:长
连接
:client方与server方先建立
连接
,
连接
建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯
连接
一直存在。此种方式常...
java
socket
是什么_
Java
Socket
Socket
就是进程通信的端点,
Socket
之间的
连接
过程可以分为几步:1、服务器监听服务器端
Socket
并不定位具体的客户端
Socket
,而是处于等待
连接
的状态,实时监控网络状态2、客户端请求客户端
Socket
发出
连接
请求,...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章