|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 342
|
[C] server,thread e broken pipe
Ciao ragazzi,
sto implementando un server per un semplice gioco. Per ogni connessione che arriva creo un thread. Il problema mi si presenza se provo a chiudere un client, in questo caso il server riceve SIGPIPE, che ahimè non riesco a gestire correttamente, ed ottengo la chiusura del processo. Ora vi chiedo 2 cose: 1) è una buona idea bloccare o ignorare questo tipo di segnale? se non lo è,avete alternative? 2) se la 1 è affermativa come posso fare? ho provato ad usare Codice:
sigemptyset(&act); sigaddset( &act, SIGPIPE ); pthread_sigmask(SIG_BLOCK, &act, NULL); Sapete aiutarmi? Ciao Arpeda Ps. in allegato mi metto il codice che ho fatto fin'ora, il file è solo rinominato non zippato
__________________
Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 Ultima modifica di Arpeda : 21-06-2004 alle 00:30. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 342
|
problema risolto, riesco a bloccare il SIGPIPE nel modo in cui avevo scritto prima, ma c'erano alcuni errori nello switch, per cui il thread iniziava a ciclare senza controllo. va tolto il break al default e va impostata la variabile cicla = 0; ogni volta che si verifica un errore il lettura.
Ciao Arpeda
__________________
Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Vuoi dire problema "aggirato"
Se non ti serve gestire il sigpipe, non ignorarlo: puoi semplicemente non farlo generare. Basta che aggiungi MSG_NOSIGNAL tra i parametri delle funzioni sui socket. Ad esempio: ret = send(fd, buf, sz, MSG_NOSIGNAL); Le pagine man documentano MSG_NOSIGNAL, ma andrebbero lette
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 342
|
Prezioso come al solito!
GRAZIE Arpeda
__________________
Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:09.



















