Sei sulla pagina 1di 1

due tread sul lato SIA server e client

buffer mezzo k 512 o 1024


il server invia il messaggio a tutti gli utenti tranne all'utente che ha inviato
il messaggio
SERVER
inizializza winsok
usato pacchetto winsock 2.h //ultima versione
presnde il nome dell'utente gethostname
gethostname prende nome utente nel formato unicode con byte a 16 bit, si deve tr
asfromare a 8bit
cliclo for controlla se ci sono messaggi tra i client collegati
std::thread my_thread[max_client]
std::vetor<clienttype> client(max_vlient)
struttura client diventa vettore-> utilizzto persapere quanti sono collgati
libreria vector,thread e string, ws2tcpip, winsock2
clyent type(int id, socket socket)
un trhead con con tipo clienttype, vettore con strutturaclient e clientarray
ciclo for per rienpire struttura (-->incoming=accept) client[i].scket=incoming c
lien[i].id=i
CLIENT
TCHAR infobuff
stesse librerie server + tchar.h
1 thread= usato per dialogare col server
due buffer: uno invio e uno ricezione 512
una struttura clientype con socket e id e buffer 512 per dialogare
nome pc getcomputername(infobuf,&bufcharcout)
leninfobuf=lstrlenW(infobuf) strlen per unicode
lencomputername=WideCharToMultiByte(CP_ACP,0, infobuffer,leninfobuffer, null,0,n
ull,null) lunghezza stringa unicode
pcomutername= new char[lencomputername]
se leninfobuf>maxCh len_infobuf=maxCh
copia da unicode nella stringa con strncpy(computernme, pcomputername, leninfobu
f)
iempie stringa pcomputername WideCharToMultiByte(CP_ACP,0,infobuf,leninfobuf,pco
mpuetname,lencomputername,nll,null) converte da unicode a byte
stessa cosa con GetUsername
collegament server
se server non pieno comunico al server usrname e computername
si attiva il thread

Potrebbero piacerti anche