Ciao, ho bisogno del vostro aiuto, mi sono imbattuto nella programmazione dei socket in C in ambiente windows7. Devo collegarmi tramite codice ad un url comprensiva di parametro GET (es. http://127.0.0.1/memGetParams.php?m=ciao). Dopo tante ricerche ho scelto come IDE eclipse per C insieme a mingw. Il test con HelloWord è ok quindi credo di aver configurato tutto bene, ma quando cerco di far girare esempi con i socket, sorgono problemi. Ho prelevato esempi da http://unsecure.altervista.org/socket/socket.htm. Ho provato l'esempio server.c e il risultato della console è:
codice:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o server.o ..\server.c
gcc -o server.exe server.o
server.o: In function `main':
D:\workspacesC\server\Debug/../server.c:22: undefined reference to `WSAStartup@8'
D:\workspacesC\server\Debug/../server.c:29: undefined reference to `socket@12'
D:\workspacesC\server\Debug/../server.c:31: undefined reference to `htons@4'
D:\workspacesC\server\Debug/../server.c:33: undefined reference to `bind@12'
D:\workspacesC\server\Debug/../server.c:34: undefined reference to `listen@8'
D:\workspacesC\server\Debug/../server.c:36: undefined reference to `accept@12'
D:\workspacesC\server\Debug/../server.c:38: undefined reference to `send@16'
D:\workspacesC\server\Debug/../server.c:39: undefined reference to `closesocket@4'
D:\workspacesC\server\Debug/../server.c:40: undefined reference to `closesocket@4'
D:\workspacesC\server\Debug/../server.c:41: undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Potete spiegarmi il significato? Con una ricerca mi sembra di aver capito che dipende dalle librerie di win ....??

Per quanto riguarda il mio programmino avevo scritto:
codice:
void main(int argc, char *argv[]){
	int sock;
	struct sockaddr_in sAddr;
	unsigned short sPort = 80;
	char *sIP = "127.0.0.1"; //qui posso inserire l'url con i param???
	WSADATA wsaData;

	if(WSAStartup(MAKEWORD(2,0), &wsaData) !=  0)
	{
		fprintf(stderr, "wsa start error");
		exit(1);
	}

	if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
		DieWithError("socket failed");
		}

	memset(&sAddr, 0, sizeof(sAddr));
	sAddr.sin_family = AF_INET;
	sAddr.sin_addr.s_addr = inet_addr(sIP); 
	sAddr.sin_port = htons(sPort);

	if (connect(sock, (struct sockaddr *)&sAddr, sizeof(sAddr)) < 0){
		DieWithError("connect failed");
	}

	closesocket(sock);
	WSACleanup();
	exit(0);
}
e l'errore è:

codice:
**** Internal Builder is used for build               ****
gcc -o testSocket2.exe client.o
client.o: In function `main':
D:\workspacesC\testSocket2\Debug/../client.c:24: undefined reference to `WSAStartup@8'
D:\workspacesC\testSocket2\Debug/../client.c:30: undefined reference to `socket@12'
D:\workspacesC\testSocket2\Debug/../client.c:41: undefined reference to `htons@4'
D:\workspacesC\testSocket2\Debug/../client.c:43: undefined reference to `connect@12'
D:\workspacesC\testSocket2\Debug/../client.c:47: undefined reference to `closesocket@4'
D:\workspacesC\testSocket2\Debug/../client.c:48: undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Potete darmi una mano?? consigli, spiegazioni, anche codice.
Se avete bisogno di chiarimenti scrivete, non so se non ho scritto qualcos'altro di importante, adesso non mi viene in mente.

Vi ringrazio in anticipo.