Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
阅读:2352回复:16

局域网如何搜全装了我的程序的主机?高分!

楼主#
更多 发布于:2004-06-22 11:23
rt,请提供一些方案,谢谢!


[编辑 -  6/23/04 by  Leopard]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-06-22 11:33
让你的程序向外发广播 :D
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
板凳#
发布于:2004-06-22 12:28
用的是tcp,不知哪里没有协调好,反正就是connect不上!
正在试udp!

大致的思路应该如何?谢谢!

Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
地板#
发布于:2004-06-22 12:29
让你的程序向外发广播 :D

也太说简单了吧, :D
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-22 12:34
用什么连接啊
主控机广播UDP
在数据字段里填写“who is ALIVE”
你的客户端程序接收到广播后,发个回应“I AM ALIVE”给主控端

主控端做处理就可以了
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-22 12:35
好像是最基本的通讯程序

网上随便找个例子都可以做
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
6楼#
发布于:2004-06-22 12:41
这种校验方案理论可行,可惜实际环境中经常搜索不全!
不知道为什么?苦啊!
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
7楼#
发布于:2004-06-22 12:43
用什么连接啊
主控机广播UDP
在数据字段里填写“who is ALIVE”
你的客户端程序接收到广播后,发个回应“I AM ALIVE”给主控端

主控端做处理就可以了
 

我就是如此啊!实际环境下搜索不全啊!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-06-22 12:44
复杂的我也说不来呀 :D
udp多省事,你的程序只管发就行了
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-22 12:51
当然存在问题了

UDP不保证传输质量

所以你在发送了who is alive后,应该按一定策略重发几次

主要的处理应该在客户端:
1、以收到广播包的时间为起点,等待一个随机的时间,然后发i ma alive ;
2、发i ma alive ,应该设置超时计数器,等待确认,超时后重传I AM ALIVE。

服务端收到数据后,应该给一个确认信号

――――――――――――――――――――
以上是通常的思路
还是有问题:不能处理局域网络内划分子网的情况
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
10楼#
发布于:2004-06-22 13:18
我的东东和一般网络软件的思路不一样,整个局域网有一个control软件,其他的软件执行control软件发来的命令!
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
11楼#
发布于:2004-06-22 13:19
不能处理局域网络内划分子网的情况

我不需考虑!
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-22 13:22
比较彻底的方式是在数据链路层直接处理以太网帧
就要考虑自己处理特殊情况了:主要处理超时和校验

我2001年做这个,整整花了28天
兄弟自己努力了。

不要想投机
网络情况很复杂
调试时可用,实际使用未必好用,只能老老实实处理所有的情况。

一般情况下
你用UDP做就可以了
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-22 13:24
刚才网络断了一会儿。
看了你的回帖

我觉得没有必要讨论了
你说的功能没有什么难点
我前面说的UDP那种方式就可以处理了
很多软件都是这样处理的。
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
14楼#
发布于:2004-06-22 13:28
刚才网络断了一会儿。
看了你的回帖

我觉得没有必要讨论了
你说的功能没有什么难点
我前面说的UDP那种方式就可以处理了
很多软件都是这样处理的。


谢谢!
到水园跟个贴!
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
15楼#
发布于:2004-06-25 17:15
我的东东在其他的地方错了,不需要这些了, ;)
coolicelee
驱动牛犊
驱动牛犊
  • 注册日期2003-08-04
  • 最后登录2012-09-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-07-08 14:02
应用程序开个特定端口例如(6789),你只要检验你那个IP段中的机器是否开了那个端口就行了,不过建议避开常用的端口和那些木马常用的端口,不然网管会骂的
游客

返回顶部