si tu es sous windows : tu as :
- include < winsock2.h>
sous linux :
- include < socket.h>
apres, ça marche pareil : tu créés sur le serveur une socket qui écoute, et attends n´importe qui.
SOCKET ListenSocket;
ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
tu crées une structure de service :
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(27015);
sachant que 127.0.0.1 est un IP qui veut dire " mon IP", donc celui du serveur.
27015 est le port d´écoute choisi, ça peut etre un autre...
enfin tu associes ta socket et ta structure de service :
bind(ListenSocket,(SOCKADDR*)&,sizeof(servi
ce))
ensuite, tu définis combien de gars peuvent etre en attente d´avoir une réponse simultanément :
attention ! ça ne veut pas dire que tu ne peux avoir que 5 mecs a la fois connectés, ça veut dire que tu peux avoir 5 mecs a la fois en attente de connexion.
listen( ListenSocket, 5 ) ; / / ici, 5 mecs
la socket ListenSocket est la socket d´écoute, la porte d´entrée. Une fois entrés, tu leur crées et leur attrirbue une nouvelle socket, pour qu´ils ne reviennent pas par la, mais direct sur leur socket :
SOCKET AcceptSocket;
enfin, tu passes ton temps a attendre que des clients se connectent :
while(1)
{
AcceptSocket = SOCKET_ERROR;
while( AcceptSocket == SOCKET_ERROR )
{
AcceptSocket = accept( ListenSocket, NULL, NULL ) ;
}
}
A partir de la, tu n´as PLUS BESOIN DE L´IP DU CLIENT : en effet, tout se passe en interne : il suffit que tu dises a ton serveur " envoie des données sur AcceptSocket", et il envoie les données chez le client.