Salve ragazzi ho un problema, mi ritrovo a dover realizzare un server concorrente sotto c in windows, (richiesta aggiuntiva al progetto -.-) comunque sia sotto unix so dell'utilizzo della fork ma in windows come faccio????
ecco uno spezzone di codice, ad es. qui come dovrei operare?

codice:
void crea_socket()
{
	SOCKET listenSocket; //Creazione della socket di ascolto
	SOCKET remoteSocket; //Creazione della socket di ricezione

	SOCKADDR_IN Server_addr;
	SOCKADDR_IN Client_addr;
	
	int sin_size, scelta_effettuata, acquisto;
	
	short port;
	int wsastartup; 
	int ls_result, prezzo_prodotto_scelto; 
     
	/* INIZIALIZZO WINSOCK */

	WORD wVersionRequested = MAKEWORD(2,2);
	WSADATA wsaData; 
	wsastartup = WSAStartup(wVersionRequested, &wsaData);
	
	if (wsastartup != NO_ERROR)
		printf("Errore WSAStartup()\n");
	
    /* FINE  WINSOCK */


    /* Creazione Socket  */
	listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

  	if (listenSocket < 0)
		printf("Server: errore .\n");
	else
		printf("La Listening Socket e' partita\n");
	
	port = 4020;
	
	Server_addr.sin_family = AF_INET; //Utilizzo della classe IP4
	Server_addr.sin_addr.s_addr = htonl(INADDR_ANY); 
	Server_addr.sin_port = htons(port); 
	
	if (bind(listenSocket,(SOCKADDR*)&Server_addr,sizeof(struct sockaddr_in)) < 0)
		printf("Server: errore.\n"); 


  ls_result = listen(listenSocket, SOMAXCONN);
	
	if (ls_result < 0)
		printf("Server: errore.\n"); //
	else
		printf("La Socket e' in Ascolto\n"); 
   

	sin_size = sizeof(struct sockaddr_in); 

	acquisto = 0;

	remoteSocket = accept(listenSocket, (struct sockaddr *)&Client_addr,&sin_size);
	
	printf("Accettata Connessione con Client: %s\n",inet_ntoa(Client_addr.sin_addr));
	
           


	recv(remoteSocket, (char *)&scelta_effettuata, sizeof(int), 0);
	
	printf("Messaggio Arrivato: %d \n", scelta_effettuata);
	prezzo_prodotto_scelto = 0;

	if (scelta_effettuata == 1) 
		invia_prodotti (remoteSocket, acquisto);

	if (scelta_effettuata == 2) 
		invia_prod_da_prenotare (remoteSocket, acquisto, prezzo_prodotto_scelto);

	if (scelta_effettuata == 3) 
	{
		acquisto = 1;
		invia_prodotti (remoteSocket, acquisto);
	}

}