不同网段的socket通信 以及winPcap vs2005设置

通过winPcap,可以再window上轻松捕获网卡数据包,还可以发送链路层的Packet将,可以网卡对网卡通信,这样非常有用,比如网络中有一个嵌入式设备,初始ip为192.168.0.122, 但是主机PC的ip为192.168.1.13 这样ip不在同一段中,不能直接通信,这样就可以利用winPcap在主机PC上广播数据包,找到网络这的192.168.0.122设备,将其改为DHCP或者手动设置新的IP,这样,两个设备就可以直接通信了。

大家会觉得,手动改一下嵌入式设备好了,但是,你要知道,如果网络中有几百个这样的设备,或者网络环境发生变化,这工作量就不是一般的大了。

linux下的socket提供了原始套接字,可以不通过winPcap,而直接发送链路层的数据包,我的IP-Camera中已经加入了这个功能,arm端用的是linux的原始套接字,PC端用的是winPcap。在稍后的博文中,会贴出一部分主要代码,供大家参考


废话少说,还是先建工程

我的winpCap库路径如下,Solution为VS输出的宏,表示工程跟目录

$(SolutionDir)winPcap\Include

$(SolutionDir)winPcap\Lib
 (1)执行下面的操作打开配置对话框:工具->选项->项目和解决方案->VC++目录
 (2)在“显示以下内容的目录”下面选择“包含文件”,添加新的项:$(SolutionDir)winPcap\Include
 (3)在“显示以下内容的目录”下面选择“库文件”,添加新的项:$(SolutionDir)winPcap\Include

 (4)新建一个C++项目工程,然后配置工程属性:
 (5)右键->属性->配置属性->C/C++->预处理器-> 预处理器定义,
添加WPCAP  HAVE_REMOTE (重要) 
 (6)右键->属性->配置属性->连接器->输入->附加依赖项,添加 wpcap.lib Packet.lib ws2_32.lib。


如果设置不对会出现

PCAP_SRC_IF_STRING PCAP_OPENFLAG_PROMISCUOUS  还有函数找不到的错误


注:最后编译release版本 步骤4~6还要重做一遍的,debug和release就是两种不同的项目配置

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值