программирование сокетов cygwin + Windows - PullRequest
5 голосов
/ 19 апреля 2011

Я пытаюсь изучить программирование сокетов в Windows и использую 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
   }

Я компилирую его, используя gcc-3 в среде cygwin, и получаю очень странные ошибки .....

undefined reference to '_WSAStartup08' and many such errors...

Я взял код с учебного сайта и поэтому хотел бы узнать, что я не так и как мне запустить программу.

Большое спасибо ..

редактировать ---------

Я также пытался использовать winsock2 вместо winsock.h, но ошибки не исчезли ...

1 Ответ

7 голосов
/ 19 апреля 2011

-lws2_32 должен это сделать.

Тем не менее, Cygwin имеет свою собственную POSIX-совместимую реализацию сокетов поверх winsock, и смешивание вещей вообще не является хорошей идеей. Если вы хотите придерживаться winsock, вы, вероятно, захотите использовать опцию gcc-3 -mno-cygwin, которая выводит DLL Cygwin из уравнения. (Вам также необходимо удалить w32api/ из #include строк.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...