Win socket编程注意点

本文总结了在开始使用windows socket编程时犯的错误,以备查阅:

 

编译环境:VS2010

项目类型:VC++,Win32项目

 

1.      头文件包含<WinSock2.h>,需要放在<windows.h>后面,否则会提示如下类似错误:

error C3861: “WSAStartup”: 找不到标识符

 

2.      必须包含ws2_32.lib库函数,否则会提示如下错误:

error LNK2019: 无法解析的外部符号__imp__WSAStartup@8,

库函数的添加方法:

a.      在代码里使用:#pragma comment(lib,"ws2_32.lib")

同样,必须放在 <windows.h> 头文件后面

b.      在项目属性里设置:

项目属性->配置属性->链接器->输入->附加依赖项

增加ws2_32.lib

 

3.      防止笔误,一个笔误导致查了好长时间,错误代码如下:

if(connect(clientSocket,(sockaddr*)&sock,sizeof(sockaddr_in) ==SOCKET_ERROR))

编译链接都是正确的,就是connect返回错误代码

 

查了好一会才看到括弧放错位置了应该如下:

if(connect(clientSocket,(sockaddr*)&sock,sizeof(sockaddr_in) )==SOCKET_ERROR)

 

还记得前几天一位兄弟少写了一个A,也查了半天,如下:

WSDATA wsaData;

看来使用C语言编码还是要细心的!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值