Win socket编程注意点

    xiaoxiao2021-08-24  96

    本文总结了在开始使用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语言编码还是要细心的!

     

    转载请注明原文地址: https://ju.6miu.com/read-677001.html

    最新回复(0)