Ik ben sinds kort weer begonnen met C++, maar moet nog even de draad weer oppakken
Ik was met dit programmaatje bezig, een server voor een klein spelletje dat ik wou maken:
[cpp]#include <iostream>
#include <winsock2b.h>
using namespace std;
void Startup( SOCKET S );
int main()
{
WSADATA w; WORD v = MAKEWORD( 2,2 );
if ( WSAStartup( v, &w ) != NO_ERROR )
{ cout << "Winsock2 is not available.\n";
cin.get();
exit(1);
}
SOCKET S;
if ( S = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ) == INVALID_SOCKET )
{ cout << "Socket could not be made.\n";
cin.get();
exit(1);
}
sockaddr_in Client;
Client.sin_family = AF_INET;
Client.sin_port = htons( 4224 );
Client.sin_addr.s_addr = htonl( INADDR_ANY );
if ( bind( S, (SOCKADDR*)&Client, sizeof((SOCKADDR*)&Client) ) == SOCKET_ERROR )
{ cout << "Socket could not be bound.\n";
cin.get();
exit(1);
}
if ( listen( S, 1 ) == SOCKET_ERROR )
{ cout << "Socket could not be set to listening mode.\n";
cin.get();
exit(1);
}
cout << "Wachten op inkomende verbindingen...";
if( accept( S, NULL, NULL ) == SOCKET_ERROR ) { cout << "\nInkomende verbinding kon niet worden geaccepteerd."; }
else { cout << "Client binnengekomen."; }
cin.get();
}[/cpp]
Maar als ik 'em run, krijg ik het bericht : "Socket could not be bound." , betekent dat bind()
SOCKET_ERROR heeft gereturned. Weet iemand hoe dit kan?

Ik was met dit programmaatje bezig, een server voor een klein spelletje dat ik wou maken:
[cpp]#include <iostream>
#include <winsock2b.h>
using namespace std;
void Startup( SOCKET S );
int main()
{
WSADATA w; WORD v = MAKEWORD( 2,2 );
if ( WSAStartup( v, &w ) != NO_ERROR )
{ cout << "Winsock2 is not available.\n";
cin.get();
exit(1);
}
SOCKET S;
if ( S = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ) == INVALID_SOCKET )
{ cout << "Socket could not be made.\n";
cin.get();
exit(1);
}
sockaddr_in Client;
Client.sin_family = AF_INET;
Client.sin_port = htons( 4224 );
Client.sin_addr.s_addr = htonl( INADDR_ANY );
if ( bind( S, (SOCKADDR*)&Client, sizeof((SOCKADDR*)&Client) ) == SOCKET_ERROR )
{ cout << "Socket could not be bound.\n";
cin.get();
exit(1);
}
if ( listen( S, 1 ) == SOCKET_ERROR )
{ cout << "Socket could not be set to listening mode.\n";
cin.get();
exit(1);
}
cout << "Wachten op inkomende verbindingen...";
if( accept( S, NULL, NULL ) == SOCKET_ERROR ) { cout << "\nInkomende verbinding kon niet worden geaccepteerd."; }
else { cout << "Client binnengekomen."; }
cin.get();
}[/cpp]
Maar als ik 'em run, krijg ik het bericht : "Socket could not be bound." , betekent dat bind()
SOCKET_ERROR heeft gereturned. Weet iemand hoe dit kan?
Laatst bewerkt door een moderator: