cygwin + Windows套接字编程

5 c windows cygwin

我正在尝试学习Windows中的Socket编程,并且正在使用cygwin.我发现同样需要的文件是在/usr/include/w32api/.

我从网上拿了一个示例程序并尝试编译但是无法这样做....同样的代码是

 #include <w32api/windows.h>
 #include <w32api/winsock.h>
 #include <stdio.h>
  int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow)
  {

       WORD sockVersion;
           WSADATA wsaData;
           int nret;

        sockVersion = MAKEWORD(1, 1);           // We'd like Winsock version 1.1

        // We begin by initializing Winsock

        WSAStartup(sockVersion, &wsaData);

       // rest part of code
   }
Run Code Online (Sandbox Code Playgroud)

我在cygwin环境中使用gcc-3编译它并得到非常奇怪的错误.....

undefined reference to '_WSAStartup08' and many such errors...
Run Code Online (Sandbox Code Playgroud)

我从教程网站上获取了代码,因此想知道我错了什么,我应该如何运行该程序.

非常感谢..

编辑---------

我也尝试使用winsock2而不是winsock.h,但错误仍然存​​在......

ak2*_*ak2 7

-lws2_32 应该这样做.

但是,Cygwin在winsock之上有自己的POSIX兼容套接字实现,通常混合起来并不是一个好主意.如果你想坚持使用winsock,你可能想要使用gcc-3的-mno-cygwin选项,将Cygwin DLL排除在等式之外.(你还需要w32api/#include线上掉下来.)