initcwnd_check配置

本文原载于 cyz14.farbox.com 2016-06-19的博客

——–以下为原文——

安装libpcap

initcwnd_check.pl是运行在Linux下的。首先需要 pcap.h 等文件,需要从 www.tcpdump.org 下载最新的 libpcap 安装包,
例如 libpcap-1.7.4.tar.gz,如果不够就再下载安装 tcpdump-x.x.x.tar.gz.

首先需要安装 flex 和 bison:

sudo apt-get install flex bison

然后安装 libpcap 和 tcpdump:

  tar -zxvf libpcap-1.7.4.tar.gz
  cd libpcap-1.7.4/
  ./configure
  make
  sudo make install

tcpdump 安装方法同上。
复制libpcap-1.4.0/pcap到/usr/include(假设libpcap-1.4.0在home下)

cp -rf /home/libpcap-1.4.0/pcap /usr/include 

一个问题的解决

运行会出现问题:

error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory

查找libpcap.so.1

whereis libpcap.so.1

libpcap.so: /usr/local/lib/libpcap.so /usr/local/lib/libpcap.so.1

是存在的,但是程序默认查找的是/usr/lib/下
解决办法很多,列举一种,该方法可以解决类似的多种问题,一劳永逸。
打开 /etc 目录下的文件ld.so.conf ,添加两行

  /usr/local/lib
  /usr/lib

然后在终端下执行从新加载配置的命令:

  sudo ldconfig

测试

 tcpdump -i eth0

安装Perl的依赖Module

安装perl的 Module 依赖包可以选择 cpanminus

 sudo apt-get install cpanminus

Net::Pcap 需要安装 libpcap-dev

sudo apt-get install libpcap-dev

之后使用 cpanminus 安装各个包

  cpanm install Net::RawIP
  cpanm install Net::Pcap
  cpanm install NetPacket::Ethernet
  cpanm install NetPacket::IP
  cpanm install NetPacket::TCP
  cpanm install Socket
  cpanm install POSIX

中间如果某个包安装失败可以根据建议加上 –force 选项:

  cpanm install NetPacket::Ethernet --force

但是运行 initcwnd_check.pl 时还是提示 Net::Pcap 没有安装,在 Ubuntu 下可以:

  sudo apt-get install libnet-pcap-perl

其他Linux版本可以通过以下命令安装:

  sudo yum install perl-Net-Pcap

参考

这段代码中有一些问题: 1. 在 `for` 循环中,`OnOK()` 和 `dlg.Create(IDD_DIALOG1)` 应该放在 `for` 循环外面,否则会在循环的每一次迭代中都执行一次,导致错误。 2. `IDD_DIALOG1` 是一个 Dialog 的资源 ID,这个 ID 需要在资源文件中定义,否则会导致运行时错误。需要确认在资源文件中存在对应的 Dialog 资源。 下面是修改后的代码: ``` void C选号器2Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 if (w != 7) { MessageBox(_T("必须选择七位"), _T("提示"), MB_OK); } else { // 定义复选框控件ID数组 UINT checkboxIds[] = { IDC_CHECK1, IDC_CHECK2, IDC_CHECK3,IDC_CHECK4,IDC_CHECK5,IDC_CHECK6, IDC_CHECK7 ,IDC_CHECK8,IDC_CHECK9,IDC_CHECK10,IDC_CHECK11,IDC_CHECK12, IDC_CHECK13,IDC_CHECK14,IDC_CHECK15,IDC_CHECK16,IDC_CHECK17,IDC_CHECK18, IDC_CHECK8,IDC_CHECK19,IDC_CHECK20,IDC_CHECK21,IDC_CHECK22,IDC_CHECK23,IDC_CHECK24, IDC_CHECK26,IDC_CHECK27,IDC_CHECK28,IDC_CHECK29,IDC_CHECK30, IDC_CHECK31,IDC_CHECK32,IDC_CHECK33,IDC_CHECK34,IDC_CHECK35,IDC_CHECK36 }; // 遍历复选框控件,获取其引用并进行操作 for (int i = 0; i < sizeof(checkboxIds) / sizeof(UINT); i++) { CButton* pCheckBox = (CButton*)GetDlgItem(checkboxIds[i]); if (pCheckBox->GetCheck() == BST_CHECKED) { // 复选框已选中,执行相应操作 y[o] = i + 1; o++; } } // 关闭当前 Dialog OnOK(); // 加载 Dialog CDialog dlg; dlg.Create(IDD_DIALOG1); // 打开 Dialog dlg.DoModal(); } } ``` 这样修改后,代码应该就可以正常运行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值