zoukankan      html  css  js  c++  java
  • CodeBlocks+MinGW编写实现IP地址的增量输出

    说明:本人环境是 win7系统 + codeblocks 12.11版本

    代码如下:
    main.cpp

    #include <iostream>
    #include <winsock2.h>
    #include <winsock.h>
    #include <windows.h>
    using namespace std;
    int main()
    {
        char   *cpStrIp;
        DWORD   dwIp,dwTmpIp;
        in_addr  inetIp;

        cpStrIp  = "192.168.1.1";
        dwTmpIp  = htonl(inet_addr(cpStrIp));
        dwIp     = dwTmpIp + 2;
        inetIp.S_un.S_addr = ntohl(dwIp);

        cout<<inet_ntoa(inetIp)<<endl;
        cout << "Hello world!" << endl;
        return 0;
    }
    输出结果:

    192.168.1.3
     Hello world!

    这个是实现Ip地址从192.168.1.1 +2变成192.168.1.3的IP增量计算输出的示例程序来的。

    下面来说明一下使用CodeBlocks+MinGW建立该网络Socket编程工程的步骤:
    打开CodeBlock单击菜单File->New->Project...弹出New from template对话框,在对框的左边选中Projects 在右边的IconView中选中Console application 然后单击[Go]按钮,新建工程strIP2inet_IP。 创建好strIP2inet_IP项目后,CodeBlock会帮我们自动打开该项目。打开项目后在左边的Management树型观察区,选Projects显示出工程项目树。展开strIP2inet_IP项目根目录下的Sources文件夹,出现main.cpp文件,双击该文件进行编辑。 在源程序编辑器中编辑main.cpp文件,在该文件中添加三个进行网络编程必要的头文件-#include <winsock2.h>,#include <winsock.h>,#include <windows.h>,然后编辑代码,代码在上面就不重复说明了,但在这里重点说明一下Codeblock对网络程序编译时需要进行的设置。

    一般Codeblock编译网络程序时会出现很多奇怪的错误,这些错误例子如下:
    main.cpp: undefined reference to `WSAGetLastError@0' 
    main.cpp: undefined reference to `ntohs@4' 
    main.cpp: undefined reference to `inet_ntoa@4' 
    main.cpp: undefined reference to `closesocket@4' 
    main.cpp: undefined reference to `WSACleanup@0' 

     解决过程:
    首先单击CodeBlocks菜单栏的Project->Build Options,弹出Project build options对话框,单击选中对话框左边的树型观察区中的strIP2inet_IP根项目,然后单击选择右边的Linker settings表单页,显示出Linker settings表单面中的内容,然后在Link libraries:工作组中单击[Add]按钮,弹出Add Library对话框,单击File右边的[...]按钮,弹出文件浏览对话框,在对话框中开打你Codeblock的安装目录下的MinGW->Lib文件夹,然后寻找该目录下的libwsock32.a,libws2_32.a库文件,然选单击文件浏览对话框中的[打开]按钮,就将网络编程库的路径添加到Add Library对话框的File编辑框中了,然后单击Add Library对话框中的[OK]按钮将路径添加到了Linker settings表单页的Link linraries:文字信息浏览框中。完成以操作后我们还要进行最后一步以保证strIP2inet_IP项目能顺利编译,单击Linker settings表单页中的[Copy all to...]按钮,弹出Copy libraries对话框,然后分别单次选中对话框中的文本信息观察区中的Debug和Release选项,然后单击[OK]按钮,将libwsock32.a,libws2_32.a库文件分别复制到Debug和Release的Link Libraries:文字信息浏览框中。 完成这些步骤后,就可以使用Codeblock工具编译strIP2inet_IP项目了。 

    原文出处:http://blog.chinaunix.net/uid-16936786-id-2841830.html

  • 相关阅读:
    C语言 · 猜算式
    C语言 · 2n皇后问题
    数据结构 · 二叉树遍历
    C语言 · 滑动解锁
    出现Exception in thread "main" java.lang.UnsupportedClassVersionError: org/broadinstitute/gatk/engine/CommandLineGATK : Unsupported major.minor version 52.0问题解决方案
    linux提取指定列字符并打印所有内容(awk)
    mapping生成sam文件时出现[mem_sam_pe] paired reads have different names错误
    出现“java.lang.AssertionError: SAM dictionaries are not the same”报错
    Linux运行Java出现“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space”报错
    Linux:echo中,>和>>的区别(保存结果和追加结果)
  • 原文地址:https://www.cnblogs.com/qiangupc/p/3457553.html
Copyright © 2011-2022 走看看