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 <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,链接库的选项在:“工具->编译选项下”,如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9mmWmTSP-1662004745133)(http://s14.sinaimg.cn/bmiddle/62bed5dahbb853ba686bd&690)]

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函数了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值