外网远程控制如何设置
时间:2011-11-06
来源:互联网
用 VB winsock tcp协议做了个远程控制程序,
1、局域网已经测试连接成功了
2、我的是电信拨号上网的外网用户,没有路由器,
3、我这边作服务器,
程序本身没有问题,要是有路由器也能连接成功,问题是有以上3点该如何设置才能让客户端连接成功呢?
1、局域网已经测试连接成功了
2、我的是电信拨号上网的外网用户,没有路由器,
3、我这边作服务器,
程序本身没有问题,要是有路由器也能连接成功,问题是有以上3点该如何设置才能让客户端连接成功呢?
作者: jj4599 发布时间: 2011-11-06
通常家庭上网都是PPPOE拨号的,这种拨号得到的Internet IP 地址有时候是伪IP的,但有时候
也可能是公网 IP 地址,如果是公网 IP 地址,只要没什么防火墙阻挡,基本上直接用客户端连
接到你的 IP 地址就可以了,也可以用“花生壳”这种软件弄个域名来给客户端连接,这样就更加
方便程序的编写,如果是伪IP,就只有通过 P2P 技术实现了。但 P2P 需要有一台公网服务器交
换用户数据做打洞的告知处理,如果有条件,可以用 P2P 技术实现,即使是伪IP都可以点对点通讯。
还有,局域网的环境与 Internet 有很大不同,开发 Internet 程序和局域网可以说有很多要注意
的地方,特别是 winsock 控件,有时候还会出现数据收发不一致的现象,比如你发个字符串"1234"
可能收到的是 "1234" & String(4,0) 或 "123" 也不一定。
所以为此要做比较多的校验、过滤等操作,而且要注意握手协议的设置,不要太依赖于数据识别。
还有就是 VB 做这样的网络服务程序其实不是很适合的,因为VB不好使用多线层操作,这样会占用
大量的CPU与内存资源。如果用 winsock 控件数组的方式,连接数也很有限,而且反应也慢。
比如就内网来说,如果你尝试用 VB + winsock 控件做 HTTP 代理服务,你访问几个网页就会发现,
VB 的这种方式不适合开发正真的网络服务器程序。不过如果做些小项目,几个点慢慢通讯,不是很
要求效率的,VB这种方式还是可以的。
如果要开发专业的网络服务程序,建议还是用 C++ 用 SOCK API + 多线程来开发,最好加上线程
池管理,不然线程太多也麻烦的。
也可能是公网 IP 地址,如果是公网 IP 地址,只要没什么防火墙阻挡,基本上直接用客户端连
接到你的 IP 地址就可以了,也可以用“花生壳”这种软件弄个域名来给客户端连接,这样就更加
方便程序的编写,如果是伪IP,就只有通过 P2P 技术实现了。但 P2P 需要有一台公网服务器交
换用户数据做打洞的告知处理,如果有条件,可以用 P2P 技术实现,即使是伪IP都可以点对点通讯。
还有,局域网的环境与 Internet 有很大不同,开发 Internet 程序和局域网可以说有很多要注意
的地方,特别是 winsock 控件,有时候还会出现数据收发不一致的现象,比如你发个字符串"1234"
可能收到的是 "1234" & String(4,0) 或 "123" 也不一定。
所以为此要做比较多的校验、过滤等操作,而且要注意握手协议的设置,不要太依赖于数据识别。
还有就是 VB 做这样的网络服务程序其实不是很适合的,因为VB不好使用多线层操作,这样会占用
大量的CPU与内存资源。如果用 winsock 控件数组的方式,连接数也很有限,而且反应也慢。
比如就内网来说,如果你尝试用 VB + winsock 控件做 HTTP 代理服务,你访问几个网页就会发现,
VB 的这种方式不适合开发正真的网络服务器程序。不过如果做些小项目,几个点慢慢通讯,不是很
要求效率的,VB这种方式还是可以的。
如果要开发专业的网络服务程序,建议还是用 C++ 用 SOCK API + 多线程来开发,最好加上线程
池管理,不然线程太多也麻烦的。
作者: SupermanKing 发布时间: 2011-11-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28