2011-04-19 20 views
5

Estoy tratando de aprender la programación de Socket en Windows y estoy usando cygwin para lo mismo. Descubrí que los archivos requeridos necesarios para el mismo estaban en /usr/include/w32api/.cygwin + programación de socket de Windows

yo hicimos un programa de ejemplo de red y trató de compilar, pero fue incapaz de hacerlo .... El código para el mismo es

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

que puedo compilar con gcc-3 en el entorno cygwin y obtener errores muy extraños .....

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

que han tomado el código de un sitio tutorial y por lo tanto les gustaría saber ¿qué estoy DNG mal y cómo debo ejecutar el programa.

Muchas gracias ..

edición ---------

también he tratado de usar en lugar de winsock2 winsock.h pero los errores persisten ...

+0

Como un aparte, creo que puede deberse a que no se vincula WS2_32.Lib, pero no estoy seguro de dónde encontrarlo en cygwin ... Probé gcc socket.c -l libws2_32.a pero no tiene éxito ..... –

+0

Si está intentando aprender sockets de Windows, ¿cuál es la razón por la que eligió cygwin? Los zócalos de Windows son muy sólidos con cualquiera de los DE de VS20xx Express. ¿Por qué no uno de esos entornos? –

Respuesta

6

-lws2_32 debería hacerlo.

Sin embargo, Cygwin tiene su propia implementación de socket compatible con POSIX además de winsock, y mezclar cosas en general no es una buena idea. Si quieres quedarte con winsock, probablemente quieras utilizar la opción -mno-cygwin de gcc-3 que elimina Cygwin DLL de la ecuación. (También necesitarás dejar w32api/ de las líneas #include)

+0

excelente ... muchas gracias ... desearía dar más votos :) –

Cuestiones relacionadas