From: io_x on
[alt.lang.asm,comp.os.ms-windows.networking.tcp-ip,comp.os.ms-windows.programmer.win32]
"io_x" <a(a)b.c.invalid> ha scritto nel messaggio
news:4c26fbc5$0$31373$4fafbaef(a)reader1.news.tin.it...

>> the exercise i think is this:
>>
>> i have one function that
>> 1) has to see if one button is push
>> if it is push it has to send to socket one string
>> gets to one window
>> 2) has to see if another button is push
>> if it is push it has to exit
>> 3) has to see if socket receive one string
>> and if receive has to print it in another window

>> what about this?
>>
>> ; int FunzioneDelServer(i8** argm)
>> ;
>> ; Essa:
>> ; 0) scrive nella finestra MD_ED_SERVER una "A" [server attivato]
>> ; 1) crea un thread per stampa input dal socket alla finestra;
>> ; tale subtrhead
>> ; bloccaLaRisorsaSys(UsoSocket)

>> ; estrae fd del soket che usa dopo
>> ; liberalarisorsaSys(UsoSocket)
.a:
>> ; usa fd con select per vedere se vi e' un evento read
>> ; se l'evento e' read
>> ; bloccaLaRisorsaSys(UsoSocket)
>> ; legge il socket
>> ; liberalarisorsaSys(UsoSocket)
>> ; invia tutto alla finestra
>> ; altrimenti controlla che l'evento "eventoUscitaSottoThread"
>> ; nel qual caso
>> ; resetta eventoUscitaSottoThread
>> ; esce
; se qualche errore si verifica setta l'evento "eventoUscitaFun"
>> ; goto .a
>> ; 2) aspetta indefinitivamente per i messaggi:
>> ; eventoUscitaFun [il secondo dell'array di eventi 4]
>> ; bloccaLaRisorsaSys(UsoSocket)
>> ; chiude il socket
>> ; liberalarisorsaSys(UsoSocket)
>> ; cosi' la select del sottotread deve ritornare
>> ; setta l'evento "eventoUscitaSottoThread"
>> ; resetta l'evento "eventoUscitaFun"
> ; goto 2
>> ; eventoInviaDati [il terzo dell'array di eventi 12]
>> ; legge la finestra di invio dati
>> ; bloccaLaRisorsaSys(UsoSocket)
>> ; scrive la finestra invio dati nel socket
>> ; liberalarisorsaSys(UsoSocket)
>> ; resetta l'evento "eventoInviaDati"
> ; goto 2
>> ; eventoUscitaSottoThread [ho capito che si puo' fare 16]
>> ; nel qual caso esce dal loop
>> ; LiberaMemoriaRisorsaSys(UsoSocket)
>> ; libera le risorse del subthread
>> ; scrive nella finestra MD_ED_SERVER una "" [stringa vuota]
>> ; esce dalla funzione
; se qualche errore e l'ultimo evento non e' eventoUscitaFun
; setta l'evento "eventoUscitaFun"
;
end

>> if there is one subthread that close one socket
>> then if one other thread has one select() that wait to +oo for
>> read only for that same soket
>> than if the socket is close, the select function return?
>>
>> WaitForMultipleObjects() function
>> is good to for thread exit [pass the handle]?

it is right
bloccaLaRisorsaSys() liberalarisorsaSys() LiberaMemoriaRisorsaSys() use OS
DeleteCriticalSection
EnterCriticalSection
LeaveCriticalSection
functions ?

they seems ok