Ok grazie mille...

ora il server compila, ma ho un problema con il client... ve lo posto

codice:
 

#include<windows.h>
#include<stdio.h>
#include<WinSock2.h>

#include<stdlib.h>
#include <pthread.h>
#include<wingdi.h>

#include<sys/types.h>
#include<errno.h>
#include<io.h>
#include<winuser.h>






#define LMITT 30
#define LOGG 150
#define LTEXT 500
#define PORTA 1101
#define LHOSTBUFF 1024


typedef struct {

	char mittente[LMITT];
	char oggetto[LOGG];
	char testo[LTEXT];
	int numeroMessaggio;
	
	} Messaggio;
	
	
	//VARIABILI GLOBALI
	UINT mex_type_sosp=0;
	char buffer[709];
	Messaggio messaggio;
	
	HWND titolo;
	WNDCLASS parametriFinestra;
	char* mesSospensione="...Sospensione...";
	
void exitWSA(int errorcode) {

	WSACleanup();
	exit(errorcode);
	}

LRESULT CALLBACK WndProc(HWND hWindow, UINT message, WPARAM wParam, LPARAM lParam) {

	switch(message) {
		
		case WM_CREATE:
			return 0;
		
		case WM_CLOSE:
			return 0;
			
		default:
			if(message==mex_type_sosp) {
			
				printf("...sospendi connessioni... \n");
				fflush(stdout);
				exitWSA(1);
				PostQuitMessage(0);
				return 0;
				}
			else 
				return(DefWindowProc(hWindow,message,wParam,lParam));
	}
}
	
void gestioneFinestre() {

	//typedef struct tagWNDCLASS {
		//UINT      style;
		//WNDPROC   lpfnWndProc;
		//int       cbClsExtra;
		//int       cbWndExtra;
		//HINSTANCE hInstance;
		//HICON     hIcon;
		//HCURSOR   hCursor;
		//HBRUSH    hbrBackground;
		//LPCTSTR   lpszMenuName;
		//LPCTSTR   lpszClassName;
		//} WNDCLASS, *PWNDCLASS;

	
	char nome[]="Bacheca_Elettronica";
	
	//nuovo tipo di messaggio evento
	mex_type_sosp=RegisterWindowMessage((LPCSTR)mesSospensione);
	if(!mex_type_sosp) {
	
		printf("ATTENZIONE: errore nella creazione del messaggio --> Client",GetLastError());
		fflush(stdout);
	}
	

	
	//settiamo i parametri della finestra
	parametriFinestra.style=CS_HREDRAW|CS_VREDRAW;
	parametriFinestra.lpfnWndProc=WndProc;
	parametriFinestra.cbClsExtra=0;
	parametriFinestra.cbWndExtra=0;
	parametriFinestra.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	parametriFinestra.hInstance=NULL;
	parametriFinestra.hCursor=LoadIcon(NULL,IDC_ARROW);
	parametriFinestra.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	parametriFinestra.lpszClassName=(LPCSTR)nome;
	parametriFinestra.lpszMenuName=NULL;
	
	//creo un evento
	if(RegisterClass(&parametriFinestra)==0) {
	
		printf("\n ATTENZIONE: errore nella creazione dell'evento --> Client \n");
		fflush(stdout);
		}
		
	//creo la finestra
	titolo=CreateWindow((LPCSTR)nome, 
									(LPCSTR)nome, 
									WS_OVERLAPPEDWINDOW, 
									CW_USEDEFAULT, 
									CW_USEDEFAULT, 
									CW_USEDEFAULT, 
									CW_USEDEFAULT, 
									NULL, NULL, NULL, NULL);
	
	if(titolo==INVALID_HANDLE_VALUE) {
		
		printf("\n ATTENZIONE: errore nella creazione della finestra \n", GetLastError());
		fflush(stdout);
		ExitProcess(-1);
		}
}
	

int Init_WinSocket(void) {

	WSADATA data; //contiene le primitive di winSock
	WORD w;
	int err=0; //gestisce gli errori
	
	w=MAKEWORD(2,2); //la variabile w contiene la versione della wsock32.dll
	err=WSAStartup(w,&data); //inizializzo la wspck32.dll verificando la mancanza di errori
	
	if(err!=0) {
	
		printf("WSAStartup fallito \n");
		
		return 0;
		}
	
	return 1;
	
}

int main() {

	//DATI
	
	int codiceAzione;
	
	char buffer[800];
	
	
	//GESTIAMO LA CREAZIONE E LA CONNESSIONE DELLA SOCKET
	
	SOCKET socketClient;
	
	struct sockaddr_in server_addr;
	struct hostent* host;
	
	server_addr.sin_family=PF_INET;
	server_addr.sin_port=htons(PORTA); //PORTA UTILIZZATA PER LA CONNESSIONE DELLA SOCKET
	//host=traduciHost("localhost");
	server_addr.sin_addr.S_un.S_un_b.s_b1=127;
	server_addr.sin_addr.S_un.S_un_b.s_b2=0;
	server_addr.sin_addr.S_un.S_un_b.s_b3=0;
	server_addr.sin_addr.S_un.S_un_b.s_b4=1;
	
	if(!Init_WinSocket())
		exitWSA(1);
	
	
	
	//LA SOCKET SI CONNETTE TRAMITE CONNESSIONE TCP(SOCK_STREAM) E PROTOCOLLO TCP/IP (PF_INET)
	if((socketClient=socket(PF_INET,SOCK_STREAM,0))<0) {
	
		printf("Errore nella creazione della socket del client");
		ExitProcess(-1); //CHIAMATA DI WIN32 CHE TERMINA NORMALMENTE IL PROCESSO
	}
	
	//PREPARIAMO LO SPAZIO DI MEMORIA CHE CONTERRà IL NOSTRO INDIRIZZO
	
	printf("\n ...connessione al server in corso... \n");
	
	if(connect(socketClient,(struct sockaddr*)&server_addr,sizeof(struct sockaddr))==SOCKET_ERROR) {
	
		printf("Errore nella connessione\n");
		SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
		ExitProcess(0);
	}
	else {
	
		printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		printf("\n~~~~~~~~~~CONNESSI AL SERVER~~~~~~~~~~~~~\n");
		printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
	}
	
	gestioneFinestre();
	
	//PREPARO LO SPAZIO DI MEMORIA PER MEMORIZZARE IL MITTENTE
	memset(&messaggio.mittente,'\0',sizeof(messaggio.mittente));
	
	printf("Inserisci username");
	
	while(1){
	
		gets(messaggio.mittente); //CATTURA USERNAME DA CANALE DI INPUT STANDARD (TASTIERA)
		
		if(strlen(messaggio.mittente)<=32) break;
		printf("Inserisci username più breve");
	}
	
	printf("\n ...login in corso... \n");
	
	if(send(socketClient, messaggio.mittente,strlen(messaggio.mittente),0)<0) {
	
		printf("\n login non riuscito \n");
		SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
		ExitProcess(0);
	}
	
	printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
	printf("\n~~~~~~~~~~~~LOGIN RIUSCITO~~~~~~~~~~~~~~~\n");
	printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
	
	printf("\nINSERISCI IL CODICE CORRISPONDENTE A CIò CHE VUOI FARE\n");
	printf("\n               Leggere   ----> 1                     \n");
	printf("\n               Scrivere  ----> 2                     \n");
	printf("\n              Cancellare ----> 3                     \n");
	printf("\n                Uscire   ----> 4                     \n");
	
	memset(&codiceAzione,'0',sizeof(codiceAzione));
	scanf("%s",&codiceAzione); 
	fflush(stdin); //SU UNO STREAM DI INPUT TORNA EOF IN CASO DI ERRORE DI SCRITTURA, 0 ALTRIMENTI
	
	switch(codiceAzione) {
	
		case '1':
		
			if(send(socketClient,"01",(strlen("01")+1),0)<0) {
			
				printf("Errore invio codice\n");
				SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
				ExitProcess(0);
			}
			else letturaMessaggi(socketClient);
			
		case '2':
		
			if(send(socketClient,"02",(strlen("02")+1),0)<0) {
			
				printf("Errore invio codice\n");
				SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
				ExitProcess(0);
			}
			else scritturaMessaggi(socketClient);
	
		case '3':
		
			if(send(socketClient,"03",(strlen("03")+1),0)<0) {
			
				printf("Errore invio codice\n");
				SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
				ExitProcess(0);
			}
			else cancellazioneMessaggi(socketClient);
		
		case '4':
		
			if(send(socketClient,"04",(strlen("04")+1),0)<0) {
			
				printf("Errore invio codice\n");
				SendMessage(HWND_BROADCAST,mex_type_sosp,0,0);
				ExitProcess(0);
			}
			else {
			
				closeSocket(socketClient);
				printf("\n~~~~~~~~~~~~~~SESSIONE CHIUSA~~~~~~~~~~~~~~~\n");
				exitWSA(0);
			}
		}
	} //CHIUSURA MAIN
e l'errore che mi da è undefined function to WinMain@16

ma nn capisco...il main c'è!!!