【破文标题】编写端口监视工具
【破文作者】demoscene
【作者邮箱】
【工具】VC++6.0
【平台】xp sp3
【软件简介】我以前写的一个东西
------------------------------------------------------------------------------------------------
【声明】得到了某大牛对我指点,我决定在论坛发表我的笫一篇文章,再次感谢大牛的指点!
------------------------------------------------------------------------------------------------
有一天(具体是哪一天我忘记了),一)时心血来潮,想学网络编程,就学了两天 ,写了这个所谓的端口监听工具
大牛别笑,虽然这东西和驱动防为墙这些比起来或许没什么技术含量,但是对我这种小鸟来说 ,想法和在编写的过程中遇到问并解决是能学到很多东西的。
其实我写这个东西的时候只看了书中介绍怎么写一个聊天工具,就想利用这一点东西能不能写出一点东西,聊天工具是不想写了,因为网上这样的文章一大把,大部分介绍网络编程的书都会用聊天工具作为例子,想想聊天工具中服务端
是通过监听某一特定的端口来接收消息的,又联想到防火墙中也有监听端口的功能,于是就想到我也可以用这种方法来实现监听端口的功能,但是书中介绍的聊天工具只是监听一个端口,怎么实现监听多个端口呢?
对了,我们可以用多线程,要监听多少个端口我们就开多少个线程,虽然这样效率低下,恕我愚昧,我只能想到这种方法,我知道防火墙用的肯定不是这种方法
设计如下:
1.为了让程序不那么死板,我们让程序能作一些参数的设置:
1.要监听的端口
2.发现有人连接到被监听的端口时是否声音提示
3.程序运行时是否显示程序窗口
我们用一个文件config.ini 来保存这些参数信息
来看看config.ini
其中ShowWindow字段表示是否显示端口,1表示显示,0表示不显示
sound字段表示是否有提示声音,1表示有,0表示没有
port字段表示要监听的端口,各端口这间用 '-' 隔开
2. 当有人连接到我们的端口的时候我们给出提示,对方连接的时间日期,连接我们的哪个端口,对方的IP,并给 对方发送一条人们自定义的消息,消息内容,人们作文件Message.ini来保存
当对方断开连接的时候,我们同样给出对方的IP,断开的日期时间,
我们来看看Message.ini,里面是随便的一些信息
3.我们用文件 log.log来保存所有的日志记录,方便我们不在的时候可以在以后查看
有了思路,我们开工
打开 VC6.0 新建一个工程,Win32 Console Application,输入工程名HoneyPot,确定,选择一个支持MFC的程序(用MFC是为了在写多线程的时候可以偷一下懒,
上面是VC给我们生成的代码,我们把一些注释等一些不必要的东西去去,让大空看着舒服一些,
下面来看readport函数
下面来看 PortThread函数
程序分析完了,附件里有完整的代码,
可以到这里下载测试程序,http://www.crsky.com/soft/19032.html