http 双向通信之端口映射
来源:互联网 发布:淘宝卖家4.6 编辑:程序博客网 时间:2024/06/06 12:48
新产品开发了近2-3个月,给到客户做试用的时候,发现一个开发这么久从未考虑到的一个通信问题,mark下,下次开发同类产品的时候长点记性了.
产品由客户端与服务端两部分组成,客户端与服务端需要相互通信,协议采用http,两边各开一个端口,用于http请求响应.由于开发的时候都在同一个网段进行测试,所以没有发现任何产品上的问题.到了客户那边才发现客户环境是部署在不同网段的,这就带来了一系列端口映射的问题.
所谓端口映射可以理解为路由地址转换(nat),网段A的机子要访问网段B的机子,中间必须要有个路由装置C(路由器,linux服务器等),C将A机子发给B机子包的源地址和源端口替换成自己的地址和端口,然后由C跟B通信,B响应请求给C,C又将响应内容还给A. 这就达到了不同网段之间A,B之间的通信.
刚接触到这个问题的时候,心想这也不是产品上的问题,就让客户自己添加端口映射呗,因为不同网段避免不了的呀. 客户的反馈是 客户端向服务端的端口影射他们可以自己负责配置,但是服务端向客户端的映射不给配, 一是太麻烦,二是客户端不让开端口通信. 客户就是上帝,既然这么要求了,我们也没用办法只有改通信方式.之前是客户端与服务端双向通信,所以跨网段就需要两边都配置端口映射. 更改之后就变成单向通信,客户端只能向服务端发请求并接受服务端响应,服务端不能向客户端发请求.服务端如果要获取到客户端的信息,只能通过客户端不停轮询的向服务端去提供信息.这样就可以保证只有客户端需要配置端口映射,服务端不需要.
总结一下, http双向通信在同一网段内基本没有什么问题,但是在不同网段端口映射需要配置两遍比较麻烦(前提是客户介意),采用单向轮询端口映射配置会相对轻松点.
- http 双向通信之端口映射
- live555 之改造成双向通信
- Linux内核之双向通信Socketpair
- http端口映射(80 port mapping)
- 内网端口映射软件之80端口映射全端口映射
- http被屏蔽做网站服务之web穿透80端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- 端口映射
- linux按键驱动模块(中断方式) 程序和调试总结
- 类的继承与派生
- 输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- jsp连接各种数据库代码及读取数据实例
- mac下设置PATH
- http 双向通信之端口映射
- 2014北大软工夏令营机试 A题
- Node.js学习教程之二:node.js的HelloWorld
- CodeIgniter笔记1
- Android SDK Manager更新不了的解决办法
- cocos2dx3.0游戏编程-前言
- java的输入语句小结
- codeforces-DIV2-A-Jzzhu and Children
- 开始我的博客之旅