Chinaunix首页 | 论坛 | 博客
  • 博客访问: 538871
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: 项目管理

2010-08-06 19:12:47

先首不管这么多先给大家帖出代码来:

main.cpp

#include

#include
#include
#include


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<    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 ,#include ,#include ,然后编辑代码,代码在上面就不重复说明了,但在这里重点说明一下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'

造成这样的错误主要是CodeBlock在编译程序是一般只加载基本的Window编程Lib库,没有将libwsock32.a,libws2_32.a这些与网络socket编程相关的库进行编译Link,所这就出现上面的奇怪问题。以下是解决方案,可以参考偶Blog中的《MinGW+CB undefined reference to `inet_ntoa@4' 》一文中所使用的方法解决这类错误,以下是这篇文章的url地址:
http://blog.chinaunix.net/u3/108571/showart_2292057.html

本人使用的方法也是参考这篇文章的,再这里感谢谢这位兄弟的无私精神。 以下是本人解决这类问题的完整过程:
首先单击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项目了。 一般运气好的话,Codeblock开发工具是可以生成可执行文件的。 哈哈。

完结          最后 祝我们伟大的同行们好运!

这里给出该项目的打包文件:
文件:strIP2inet_IP.rar
大小:84KB
下载:下载



阅读(3029) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chulia200020012010-08-06 21:34:21

这篇文单主要参考以下资料 1)在编程中如何实现IP地址的增量输出? http://www.skinplusplus.com/bbs/viewthread.php?tid=124041 2)如何对IP地址的值进行运算? http://topic.csdn.net/t/20040713/14/3170537.html