一般用HttpWebRequest一般很少会有需求获取IP 都是用来获取页面内容或者模拟http操作用 而且获取IP也自带了Dns类 不过有时候比如需要采集一些网站的信息的时候需要顺带把网站的IP也给保存下来的时候就需要又要页面内容又要IP了 虽然可以上面两个类同时使用 但是我个人觉得应该能直接从HttpWebRequest中获取IP毕竟他也需要通过IP去访问
DNS报文头数据格式 了解DNS数据格式的话 就可以自己发送DNS数据包来进行域名的查询了
通常情况下我们要判断目标机器的指定端口是否开放 可以直接通过用Socket去连接看看是否能够连接上 但是直接TCP协议的Socket去连接的话 是建立的一个全连接 比较耗费资源而且还有timeout之类的等待 如果端口数目并不是很多可以通过TCP直接连接 但是如果端口数目很多的情况下这样的方式就有点不尽人意了 而如果此时使用无状态的方式去扫描的话效果就不一样了
一般情况下我们写程序的时候不需要用到这些 但是有时候有那么一点特殊的需求需要自己来构造协议的数据包 而不仅仅是应用层的数据包 比如想自己发包模拟TCP三步握手
窗体间的传值经常被人问到 我在这里列举一些 常用的窗体间传值的方法
窗体间的传值经常被人问到 我在这里列举一些 常用的窗体间传值的方法
在写程序的时候 有时候需要给程序添加一些快捷键 虽然可以通过KeyDown事件来编写一些快捷键 但是这种方式的只能在目标窗口获得焦点的时候才生效 当目标窗口没有获得焦点比如最小化的时候 也希望通过快捷键来调用程序的话就需要用到全局热键了
在用.NET写程序的时候一些控件的事件经常被用到 但是这些事件背后却是一个消息 比如鼠标左键对窗体的点击.NET中就会去执行MouseDown事件 然而这个事件的背后却是一个WM_LBUTTONDOWN消息 这个消息在.NET中被封装成了MouseDown事件
有时候调用一个函数 需要传入的值并不一定都是那些比较简单的整型之类的参数 有一些函数需要传入一些比较复杂的类型这也是正常的 想想我们有时候自己写代码的时候一些函数的参数也不一定是int之类的 也有可能是一个自定义的类作为参数 Win32Api也是一样 有时候需要传入一个struct作为参数 当然这些struct和常量一样也是预先就定义好的 可以根据工具或者文档查询到
有时候在调用函数的时候需要传入一些标志性的值 而这个值是由微软给出的 也就是一些已经预先定义好的常量 而这些常量的值是可以根据文档或者一些工具来查询到的