(1/2)

Sto iniziando a giocherellare con il multitheading e con i socket, e data la mia scarsissima esperienza in programmazione con il c++ (tre mesi appena) credo di stare a creare un pò di casino....

ho scribacchiato una specie di server che riesce a prendere più connessioni contemporanee... solo che non riesce a gestirle insieme! In particolare il problema sorge quando apro una seconda connessione, il thread che gestisce la prima connessione non va più avanti (o almeno a me così sembra...)

Ecco il codice

codice:
// File multithreading.cpp

#include <iostream>
#include <winsock2.h>
#include <winbase.h>
#include <queue>

using namespace std;


void main()
{
	SOCKET s,ss;
	DWORD ThreadId;
	WORD wVersionRequested;
	WSADATA wsaData;
	sockaddr_in any_addr, remote_addr;
	int addrlen;


	wVersionRequested = MAKEWORD(2,0);
	WSAStartup( wVersionRequested, &wsaData) ;

	any_addr.sin_family=AF_INET;
	any_addr.sin_port=htons( IPPORT_TELNET );
	any_addr.sin_addr.s_addr=htonl ( INADDR_ANY );


	s = socket(AF_INET,SOCK_STREAM,0);
	if(s==INVALID_SOCKET) {exit(2);}

	if(bind(s,(struct sockaddr *) &any_addr, sizeof(struct sockaddr_in)))
	{
		WSACleanup();
		exit(0);
	}
	listen(s,10);

	addrlen=sizeof(struct sockaddr);


	while(true)
	{
		ss=accept(s,(struct sockaddr *) &remote_addr,(LPINT)&addrlen);

		CreateThread(NULL,0,controlla, &ss, 0, &ThreadId);
		
		
	}
}