io non ho problemi di quel tipo..fino a li è tt ok ...

ecco il mio codice..del client

codice:
int main(int argc, char * argv[])
{
	SOCKET conn_s;
	short int port;
	struct sockaddr_in server;
	char buffer[MAX];
	char *szAddress;
	char *szPort;
	char *endPtr;
	struct hostent *he;
	char choise;
	u_long nRemoteAddr;
	WSADATA wsaData;

	he=NULL;
	puts(" PRENOTAZIONE CINEMA CLIENT");
	//interpretazione riga di comando

	ParseCmdLine(argc,argv,&szPort,&szAddress);


	//creazione del socket

	port= strtol(szPort,&endPtr,0);
	if(*endPtr)
	{
			printf("client:porta non riconosciuta \n");
			system("PAUSE");
			exit(EXIT_FAILURE);
	}

	if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0)
	{
			printf("errore in WSA startup");
			exit(EXIT_FAILURE);
	}

	if((conn_s=socket(AF_INET,SOCK_STREAM,0))<0)
		{
			fprintf(stderr,"client :errore socket");
			system("PAUSE");
			exit(EXIT_FAILURE);
		}

	// Vuotiamo la struttura server e riempiamo i campi necessari */

	memset(&server,0,sizeof(server));
	server.sin_family=AF_INET;
	server.sin_port=htons(port);

	//connessione al server

	/* Impostazione dell’indirizzo IP del server remoto */

	nRemoteAddr = inet_addr(szAddress);
	if (nRemoteAddr == INADDR_NONE)
	{
		printf("client: indirizzo IP non valido.\n");
		if ((he=gethostbyname(szAddress)) == 0)	
		{
			printf("connessione fallita.\n");
			system("PAUSE");
			exit(EXIT_FAILURE);
		}
	printf("connessione riuscita.\n\n");
	nRemoteAddr = *((u_long *)he->h_addr_list[0]);
	}
	server.sin_addr.s_addr = nRemoteAddr;
	//connect

	if(connect(conn_s,(struct sockaddr *) &server,sizeof(server))==SOCKET_ERROR)
	{
		printf("client: errore durante la connect");
		exit(EXIT_FAILURE);
	}
	
k: while((choise=comunicazione(conn_s))=='r')
   {
		printf("client:reinserire numero giusto \n");
   }
	
   switch (choise)
   {
   case '0': exit(0);
	   break;
   case '1':visualizzamappa(conn_s);
	   break;
   case '2':
	   char postistr[TEXT_LENGTH];
	   int numposti;
	   puts("inserisciil numero di posti da prenotare");
	   errore=(scanf("%s",postistr));
	   if(errore<0)
	   {	
		   if(WSAGetLastError()==WSAEINTR)
							{
							printf("errore nella scanf");
							SendMessage(HWND_BROADCAST,my_mex_type,0,0);
							exit(-1);// uscita
							}
	   }
	   if(verificastringa(postistr)!=-1)
	   {
			numposti=atoi(postistr);
	   }
	   else numposti=-1;
	   if(numposti<=0|| numposti>127)
	   {
			puts("Errore:	numero posti inserito non valido.al max è possibile prenotare 127 posti,SALA PERMETTENDO");
	   }
	   else 
	   leggiposti( numposti,conn_s);
	   break;
   case '3':disdici(conn_s);
	   break;
   default: break;
   }

   printf("client:proseguire con un altra operazione? Y per si altro per no: ");

   fgets(buffer,MAX,stdin);
   if(buffer[0]=='y' || buffer [0]=='Y')
   {
		if(send(conn_s,"y",sizeof(buffer),0)==-1)
		{
				if(WSAGetLastError()==WSAEHOSTDOWN)
				{
						printf("client:errore nella send");
						SendMessage(HWND_BROADCAST,my_mex_type,0,0);
						system("PAUSE");
						exit(-1);
				}
		}
		system("PAUSE");
		goto k;
   }
   system("PAUSE");
   WSACleanup();
   }
e del server :

codice:
ParseCmdLine(argc,argv,&endPtr);

	//creazione socket

	/*strtol convert un char in un long int */

	port= strtol(endPtr,&endPtr,0);

	if(*endPtr)
	{
			fprintf(stderr,"server: porta non riconosciuta");
			exit(EXIT_FAILURE);
	}

	printf("server: in ascolto sulla porta %d \n", port);

	/*wsStartup inizializza l'utilizzazione delle Windows Socket */

	if( WSAStartup (MAKEWORD (1,1) , &wsaData) !=0)
	{
		printf("errore in WSA startup");
			exit(EXIT_FAILURE);
	}

	/* creazione socket*/

	if((list_s=socket (AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
	{
			fprintf(stderr,"server:errore apertura socket"); //flusso di errore è la destinazione per per i messaggi di errore
			exit(EXIT_FAILURE);
	}

	//bind e listen su socket

	/*memset setta i primi n bytes della locazione puntata dal puntatore passato (nel nostro caso i bytes sono sizeof(buffer) e il puntatore &server) */

	memset(&server,0,sizeof(server));

	server.sin_family=AF_INET;
	server.sin_addr.s_addr=htonl(INADDR_ANY);
	server.sin_port=htons(port);

	//effettua la bind sull'indirizzo e la porta ora assegnate

	if(bind(list_s,(struct sockaddr *)&server, sizeof(server))==SOCKET_ERROR)
	{
			fprintf(stderr,"server: errore nella bind");
			exit(EXIT_FAILURE);
	}

	//mette la socket in ascolto tramite la listen

	if(listen(list_s, LISTENQ)==SOCKET_ERROR)
	{
		fprintf(stderr,"server:errore nella listen");
		exit(EXIT_FAILURE);
	}

	//creazione file

	file =CreateFile((LPCWSTR)"codici",GENERIC_READ,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);