c - cygwin + Windows socket programmering

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at lære Socket programmering i Windows og bruger cygwin til det samme. Jeg fandt ud af, at de nødvendige filer, der var nødvendige for det samme, var på /usr/include/w32api/.


Jeg tog et prøveprogram fra nettet og forsøgte at kompilere, men kunne ikke gøre det .... Koden for det samme er


 #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
   }


Jeg kompilerer det ved hjælp af gcc-3 i cygwin miljø og får meget mærkelige fejl .....


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


Jeg har taget koden fra et tutorials websted og vil derfor gerne vide, hvad jeg er dng forkert, og hvordan skal jeg køre programmet.


Mange tak..


rediger ---------


Jeg har også forsøgt at bruge winsock2 i stedet for winsock.h men fejlene vedvarer ...

Bedste reference


-lws2\_32 bør gøre det.


Cygwin har dog sin egen POSIX-kompatible socket implementering oven på winsock, og det er ikke en god ide at blande ting op generelt. Hvis du vil holde fast med winsock, vil du sandsynligvis bruge gcc-3 's -mno-cygwin mulighed, der tager Cygwin DLL ud af ligningen. (Du skal også slippe w32api/ fra [[#include linjer.)