关于socket的一点思考——外网连接内网?
来源:互联网 发布:网络童装代理 编辑:程序博客网 时间:2024/05/17 08:38
前段时间用Java又做了一个通信软件——山寨糗糗,一般这么简单的做一个聊天软件之后都会称之为局域网聊天工具,那么它到底能不能实现外网访问内网然后进行通信呢?这个问题在俺的脑海中萦绕许久。
因为以前做的就是两个简单的客户端直接通信,不通过服务器,因此怎么由一个内网中的机器访问到另一个内网中的机器确实不好想想(maybe是能力有限)。不过这次用Java实现是通过一个服务器端来完成客户端通信的,那么可不可以由一个内网访问到一个外网,然后再由外网访问到内网呢?
首先看一张图,软件在局域网内进行通信的示意图:
这样客户端发送消息到服务器,然后服务器把消息转发到指定的客户端,这里客户端和服务器属于同一局域网,因此理解起来没有什么问题。这里需要考虑一下socket,这是进行消息转发的核心。需要注意的是如果这里面的所有客户端都是外网地址的话也是可以进行通信的,因为都是直接相连的。
然后看一下通过外网通信的示意图:
这样内网用户A首先登陆,这样呢就在外网服务器上建立了一个socket连接,然后每次进行通信的时候外网都会通过这个socket来发送消息。就是这样,外网和内网直接进行了通信,其核心也就是socket。(个人理解)
网上有好多人发帖子问qq的通信是如何进行的,有人回复说通过查找路由表,找到地址,还有其他的一些答案,不过说实话我也不知道那个是对的。
最后总结,其实重点就在socket上,这个socket里面到底包含的是什么,我目前还不知道,所以上面的文章都来自自己的假想。
- 关于socket的一点思考——外网连接内网?
- 关于socket编程的一点小思考
- 关于CentOS 5.4下上无线网连接内网的一点心得
- 关于 && 的一点思考
- 关于各种电路板相互连接的一点思考
- 关于android中建立socket连接的一点小经验
- 关于计算机体系结构的一点思考。
- 关于计算机体系结构的一点思考
- 关于继承的一点思考
- 关于盗版的一点思考
- 关于宏的一点思考
- 关于计算机的一点思考
- 关于编程的一点思考
- 关于软件设计的一点思考
- 关于string的一点思考
- 关于makefile的一点思考
- 关于“概念”的一点思考
- 关于重载的一点思考
- Windows compact 7 使用体验
- State Threads Library for Internet Applications
- 如何让repositoryItemComboBox控件的文本显示为不可编辑
- 机器学习 支持向量机(SVM)
- 欣闻《C语言从入门到精通》已经隆重出版
- 关于socket的一点思考——外网连接内网?
- VC6.0中,用MFC的单文档,写的[拼图游戏]----自我解析
- JSP设计模式 [转载]
- T3 Embedded 编译过程中出错的解决方法
- 模仿无罪 分享万岁
- 如何判断一个form是否被关闭
- 双线性插值
- 队列之顺序队列
- pom reference 笔记