|
|
Up |
|
|
  |
Author: imhoimho
Date: Dec 6, 2007 14:35
Valentino Volonghi aka Dialtone ha scritto:
> imho wrote:
>
>> Sto integrando nel mio miniframework async, che ho riscritto
>> completamente (è una bomba, ma lo so solo io! :D) la gestione asincrona
>> dei socket, per farne una libreriuccia bella completa e "mini" per le
>> pratiche asincrone quando non si può o non si vuole utilizzare un
>> framework imponente come twisted e soprattutto da usare a livello
>> client, e devo dire che sta venendo fuori una cosa proprio bella :P
>> (dopo più di due anni di riscritture e raffinamenti!)
>
> :(
Se vuoi dire che è inutile "reinventare la ruota", ti assicuro che
quello che sto facendo (anzi ri-scrivendo) è una cosa di cui ho sempre
sentito l'esigenza, e non è che non abbia riflettuto sugli strumenti...
|
| Show full article (1.61Kb) |
|
| |
6 Comments |
|
  |
Author: imhoimho
Date: Dec 6, 2007 14:22
Valentino Volonghi aka Dialtone ha scritto:
> imho wrote:
>
>> Sto integrando nel mio miniframework async, che ho riscritto
>> completamente (è una bomba, ma lo so solo io! :D) la gestione asincrona
>> dei socket, per farne una libreriuccia bella completa e "mini" per le
>> pratiche asincrone quando non si può o non si vuole utilizzare un
>> framework imponente come twisted e soprattutto da usare a livello
>> client, e devo dire che sta venendo fuori una cosa proprio bella :P
>> (dopo più di due anni di riscritture e raffinamenti!)
>
> :(
Uhm... in che senso ? :D
|
| |
|
| |
no comments
|
|
  |
Author:
Date: Dec 6, 2007 14:09
imho wrote:
> Sto integrando nel mio miniframework async, che ho riscritto
> completamente (è una bomba, ma lo so solo io! :D) la gestione asincrona
> dei socket, per farne una libreriuccia bella completa e "mini" per le
> pratiche asincrone quando non si può o non si vuole utilizzare un
> framework imponente come twisted e soprattutto da usare a livello
> client, e devo dire che sta venendo fuori una cosa proprio bella :P
> (dopo più di due anni di riscritture e raffinamenti!)
:(
|
| |
|
no comments
|
|
  |
Author: pierbrunpierbrun
Date: Dec 6, 2007 14:05
scusa ma se tiri giu il peer remoto del socket... non dovresti rilevarlo
nella select non tra le socket aperte in lettura ma in quelle in
condizione di eccezione ? (la select se nn ricordo male ha 3 maschere...
lettura, scrittura ed eccezioni )
ciao
PP
imho ha scritto:
> Salve, la domanda riguarda più che python la programmazione con socket
> in modalità asincrona, mi si perdonerà il semi-ot :-).
> Un evento di chiusura della connessione dall'altro...
|
| Show full article (1.15Kb) |
|
no comments
|
|
  |
Author: imhoimho
Date: Dec 6, 2007 13:47
[ Come al solito ho premuto il bottone sbagliato e ho risposto via mail
a Valentino Volonghi, sorry ]
Valentino Volonghi aka Dialtone ha scritto:
> imho wrote:
>
>>> socket.recv(1024) == None => hanno chiuso la parte write
>>> os.write(socket.fileno(), '') => hanno chiuso la parte read
>> Quest'ultimo è equivalente a sock.send('') per un certo socket ? E
>> comunque, se tento di scrivere una stringa vuota, sempre 0 otterrò,
>> anche se la parte read non è stata chiusa!
>
> Non e` l'ottenere 0 il problema. Se non puoi scrivere (perche` l'altro
> non legge) da errore. Tu controlli che non sia EINTR, EWOULDBLOCK o
> ENOBUFS (che sono roba clientside) e se non e` nessuno allora e` colpa
> dell'altro tizio.
Ahh! Ottimo suggerimento, grazie!
|
| Show full article (2.44Kb) |
|
no comments
|
|
  |
Author:
Date: Dec 6, 2007 13:05
imho wrote:
>> socket.recv(1024) == None => hanno chiuso la parte write
>> os.write(socket.fileno(), '') => hanno chiuso la parte read
>
> Quest'ultimo è equivalente a sock.send('') per un certo socket ? E
> comunque, se tento di scrivere una stringa vuota, sempre 0 otterrò,
> anche se la parte read non è stata chiusa!
Non e` l'ottenere 0 il problema. Se non puoi scrivere (perche` l'altro
non legge) da errore. Tu controlli che non sia EINTR, EWOULDBLOCK o
ENOBUFS (che sono roba clientside) e se non e` nessuno allora e` colpa
dell'altro tizio.
>> MA non se l'errore e` EINTR, EWOULDBLOCK o ENOBUFS.
>>
>> Ecc ecc, per ssl ci sono altri modi di sistemare la faccenda.
>>
>
> Capito, insomma non è proprio tranquilla la gestione della cosa :P
|
| Show full article (1.52Kb) |
|
no comments
|
|
  |
Author:
Date: Dec 6, 2007 12:15
imho wrote:
> scrittura ? E' possibile ciò ? E se non è possibile, allora che senso ha
> fare uno shutdown con flag diverso da SHUT_RDWR se l'altro capo non
> potrà accorgersene ?
Vado a naso perche` non ci ho mai pensato, ci pensa twisted per me di
solito.
socket.recv(1024) == None => hanno chiuso la parte write
os.write(socket.fileno(), '') => hanno chiuso la parte read
MA non se l'errore e` EINTR, EWOULDBLOCK o ENOBUFS.
Ecc ecc, per ssl ci sono altri modi di sistemare la faccenda.
|
| |
|
no comments
|
|
  |
Author: Manlio PerilloManlio Perillo
Date: Dec 6, 2007 11:54
Il Thu, 06 Dec 2007 18:11:29 +0000, imho ha scritto:
> Salve, la domanda riguarda più che python la programmazione con socket
> in modalità asincrona, mi si perdonerà il semi-ot :-). Un evento di
> chiusura della connessione dall'altro capo del socket viene...
|
| Show full article (1.02Kb) |
|
4 Comments |
|
  |
Author: Giampaolo Rodolà Giampaolo RodolÃ
Date: Dec 6, 2007 11:39
On 6 Dic, 19:11, imho wrote:
> Salve, la domanda riguarda più che python la programmazione con socket
> in modalità asincrona, mi si perdonerà il semi-ot :-).
> Un evento di chiusura della connessione dall'altro capo del socket viene
> notificato da una select restituendo il descrittore del socket tra
> quelli pronti in lettura, e contemporaneamente restituendo una stringa
> vuota all'atto dell'effettiva lettura dei dati dalla socket.
> Ora io mi chiedo: come si fa a capire quando l'altro capo ha mandato uno
> shutdown con flag pari a SHUT_RD oppure SHUT_WR ? Cioè, come faccio a
> sapere quando l'altro capo ha chiuso la connessione solo in lettura o
> scrittura ? E' possibile ciò ? E se non è possibile, allora che senso ha
> fare uno shutdown con flag diverso da SHUT_RDWR...
|
| Show full article (1.83Kb) |
|
3 Comments |
|
  |
|
|
  |
Author: imhoimho
Date: Dec 6, 2007 10:11
Salve, la domanda riguarda più che python la programmazione con socket
in modalità asincrona, mi si perdonerà il semi-ot :-).
Un evento di chiusura della connessione dall'altro capo del socket viene
notificato da una select restituendo il descrittore del socket tra
quelli pronti in lettura, e contemporaneamente restituendo una stringa
vuota all'atto dell'effettiva lettura dei dati dalla socket.
Ora io mi chiedo: come si fa a capire quando l'altro capo ha mandato uno
shutdown con flag pari a SHUT_RD oppure SHUT_WR ? Cioè, come faccio a
sapere quando l'altro capo ha chiuso la connessione solo in lettura o
scrittura ? E' possibile ciò ? E se non è possibile, allora che senso ha
fare uno shutdown con flag diverso da SHUT_RDWR se l'altro capo non
potrà accorgersene ?
Ringrazio fin d'ora...
|
| Show full article (0.84Kb) |
|
no comments
|
|
|
|
|
|
|