小生最近做了一个涉及监控的项目,使用的是大华的监控方案。
并没有做太多的开发工作,只是做了一个网站,并内嵌了大华的Web服务页面(就是通过iframe链接到DVR中的网站),当然我的网站和大华的网站都是经过路由映射的,并使用了花生壳的域名服务。这些都是在一个局域网中,并且增加了一个无线路由器,使用电信的无线3G网卡。
路由器中的端口映射如下:
192.168.0.2:8090 -> 映射大华的Web服务页面,即DVR中的网站
192.168.0.2:37777 -> 映射大华的TCP数据传输端口
192.168.0.2:37778 -> 映射大华的UDP数据传输端口
192.168.0.10:80 -> 映射本人开发的网站端口
192.168.0.10:38001 -> 映射本人开发的一个浏览器插件的TCP端口(主要用于实时数据的传输)
192.168.0.10:38002 -> 映射本人开发的一个浏览器插件的另一个TCP端口
以上所有这些都是开发部署好,并可正常访问运行的。
小生想问的问题是以下的东西:
现在老大提出了一个新的方案,本人才疏学浅,听得莫名奇妙,先大概说一下,可能不甚清楚,请教各位大侠替小生分析分析:
老大说不使用路由器了,并且增加一个新的服务器(这个服务器在无锡,而我的网站与大华的监控设备在江西)。老大说写一个程序在服务器中,此程序的主要作用是对各种数据请求进行转发,比如,对服务器的1端口请求转发到上面的192.168.0.2:8090,然后将192.168.0.2:8090返回的数据再转发出去;对服务器的2端口请求转发到上面的192.168.0.2:37777,然后将192.168.0.2:37777返回的数据再转发出去,依次类推。他的意思是说此服务器作为一个中转站,所有对网站与监控的数据请求都必须经过此服务器进行如此这般。
小生思量一二,发现此问题高深莫测。还请各位大侠发表一二观点,以解小生困惑!
拜谢!
软件路由与硬件路由的区别。
您好,谢谢您的关注。能说说一些思路吗?
因为我想着这些涉及到Http、Tcp、Udp三方面的协议问题,我的编程是不是还要自己定义协议,大华也没有相关数据接口,可能我的理解也不是很明白,实在不知如何下手呢。
@TigerSpringLiu: 不用自己定协议,硬件路由器事实上就是单片机+软件实现,只是在做路由的时候是通过IP包来判断的。你现在要做的是软件路由(PC+软件),你也可以通过IP包来判断(比较困难),但你也能使用更简单的TCP,HTTP协议来判断。比如你在新服务器上监听HTTP 8090端口(映射到大华的Web服务页面——http://wwww.xxx.xxx:80/xxxx/xxxx),收到客户端请求后,你建立一个到大华WEB服务页面的HTTP连接,然后把客户端的请求原封不动的发送给大华WEB服务页面,得到响应后,再把大华的处理结果返回给客户端,以下是同步处理的伪码:
Response HandleRequest(Request req)
{
Response rp = SyncSend("大华Web服务页面",req);
return rp;
}
@程序猿.码农: 这样的开发大概需要多长时间(当然是对于我这种理解程度的),您有没有相关的资料可以提供一下下呢,示例程序,链接也可以。拜谢!!
@TigerSpringLiu: 这真不好说,估计1-2个月时间吧,HTTP的相对简单,TCP/UDP稍微复杂点(如果采用跟HTTP一样的基于消息的路由也不复杂)。示例的话,我能想到的就是WCF的基于消息的路由实现。
@程序猿.码农: 多谢指点!这样的开发周期肯定不行呢。
网上查了一下,有些软路由什么的:http://bbs.routerclub.com/forum.php,这些可以直接拿来用吗?
@TigerSpringLiu: 没使用过,不过你可以自己快速测试下。