Serwer dla wielu klientów

0

Witam! Mam pewien serwer TCP napisany w c++, który może połączyć sie tylko z jednym klientem naraz. Chcę zrobić, by kilka klientów naraz mogło się z nim połączyć, a nie wiem jak (jestem początkującym).
Oto kod serwera:

#include <cstdlib>
#include <iostream>
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <commctrl.h>
using namespace std;
WSADATA wsda;									
char szRepMessage[80];						
int iMessageLen;
int ret;
char szInBuffer[128];							
int iBufferLen;
int iPort, iAddrLen;
SOCKET sListen, sClient;						
SOCKADDR_IN addr,remote_addr;				

int main(int argc, char *argv[]) {
	WSAStartup(MAKEWORD(2,2), &wsda);
	iPort = 2732;
	// stworzenie gniazda TCP
	sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
	// sprawdzenie bledu
	if (sListen == SOCKET_ERROR)
	{
		cout << "nie mozna utworzyc gniazda." << endl;
	}
	// laczenie gniazda z adresem/portem
	addr.sin_family = AF_INET;
	addr.sin_port = htons(iPort);
	addr.sin_addr.s_addr = htonl(INADDR_ANY);
	ret = bind(sListen, (struct sockaddr *) &addr, sizeof(addr));
	// sprawdzenie bledu
	if (ret == SOCKET_ERROR) {
		cout << "nie mozna powiazac gniazda." << endl;
	}else{
		cout << "gniazdo TCP zaladowane." << endl;
	}
	ret = listen(sListen, 10);
	if (ret == SOCKET_ERROR){
	    cout << "nie mozna nasluchiwac" << endl;
	} else {
        cout << "ok!" << endl;
    }
	iAddrLen = sizeof(remote_addr);
	sClient = accept(sListen, (struct sockaddr *) &remote_addr, &iAddrLen);
	
	if (sClient == SOCKET_ERROR) {
		cout << "ktos nie moze sie polaczyc." << endl;
	}else{
		cout << "ktos polaczyl sie z serwerem."<< endl;
    }
    return EXIT_SUCCESS;
}

Z góry dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1