DEV C++中Socket网络编程

Dev-C++是一个小巧开源的C/C++集成开发环境,对于大部分的Linux函数,都可以在引用头文件后直接调用,但开发socket网络程序却要多做一些工作。

 

添加 头文件不可以。

添加  #pragma    comment(lib,"ws2_32.lib")  仍然报错

 

学习自:http://blog.sina.com.cn/s/blog_62bed5da01013148.html 

 

  1. 在程序中引用头文件

       #include <<strong>winsock2.h>

 

   2. 在使用socket接口前需要调用WSAStarup函数进行Windows下网络接口的启动,代码示例如下:

 

    WSADATA wsd;

    if((status=WSAStartup(MAKEWORD(2,2),&wsd))!=0)
    {
        perror( "wsastartup()   failed: ");
        exit(1);
    }

 

   3. 在程序退出前需要调用WSACleanup进行资源的清理,代码示例如下:

 

    WSACleanup();

 

   4. 编译时必须链接winsock的库ws2_32,链接库的选项在:“工具->编译选项下”,如图所示:

Dev-C++下编写socket网络程序

 

  5. 最后编译链接后,程序即可正确执行。

 

  说明:

       WSAStarup,即WSA(Windows SocKNDs Asynchronous,Windows套接字异步)的启动命令。是Windows下的网络编程接口软件 Winsock1 或 Winsock2 里面的一个命令(Ps:Winsock 是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口)。
  为了在应用程序当中调用任何一个Winsock API函数,首先第一件事情就是必须通过WSAStartup函数完成对Winsock服务的初始化,因此需要调用WSAStartup函数。使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。
    当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。

猜你喜欢

转载自blog.csdn.net/u014717398/article/details/82920879
Dev