approfitto per chiedere una cosa...
ho fatto un piccolo server in C++ che accetta delle connessioni:
codice:
#include <iostream>
#include <winsock.h>
using namespace std;
int main() {
// Inizializzazione Winsock.
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != NO_ERROR)
printf("Errore in WSAStartup()\n");
// Creaizone della socket con i relativi parametri
int ListenSocket;
ListenSocket = socket(AF_INET, SOCK_STREAM, 0);
if (ListenSocket == INVALID_SOCKET) {
printf("Errore nella chiamata socket(): %ld\n", WSAGetLastError());
WSACleanup();
exit(1);
}
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(27015);
if (bind( ListenSocket,
(SOCKADDR*) &service,
sizeof(service)) == SOCKET_ERROR) {
printf("bind() failed.\n");
closesocket(ListenSocket);
exit(1);
}
if (listen( ListenSocket, 15 ) == SOCKET_ERROR)
printf("Error listening on socket.\n");
int AcceptSocket;
printf("Waiting for client to connect...\n");
while(1) {
AcceptSocket = SOCKET_ERROR;
while( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( ListenSocket, NULL, NULL );
}
printf("Client connected.\n");
ListenSocket = AcceptSocket;
break;
}
WSACleanup();
return 0;
}
il compilatore non mi dà alcun problema, solo che mi dà 11 errori di linker perchè il riferimento alle funzioni bind(), socket(), accept() ...etc non è definito.
questo tipo di errore lo dà programmando su DevC++, su MS Visual C++ e anche su .NET
tra l'altro questo codice l'ho trovato anche sulla libreria msdn, e in gran parte coincide con quello che ho su alcuni testi.
da cosa è causato questo strano errore di linker ???
grazie ciao!