[Python] socket e MSG_OOB: bug?

Giampaolo Rodola' g.rodola a gmail.com
Sab 6 Set 2014 15:28:34 CEST


2014-09-06 14:50 GMT+02:00 Manlio Perillo <manlio.perillo a gmail.com>:

> 2014-09-06 14:02 GMT+02:00 Remo The Last <py.remothelast a yahoo.it>:
>
>> Manlio, stai scherzando vero?
>> Stai dicendo che il trasporto udp è più affidabile del tcp (best effort)?
>> ciacia
>>
>>
>> No. Sto dicendo che se vuoi dialogare tramite "messaggi" o usi
> SOCK_STREAM con un dato protocollo, oppure usi SOCK_DGRAM.  Se ti senti
> audace puoi anche usare SOCK_SEQPACKET (SCTP), che è reliable.
> Altrimenti non ha senso parlare di affidabilità, perchè il tuo programma è
> errato quindi inaffidabile in partenza.
>
> Nota che UDP su socket di tipo AF_LOCAL (aka UNIX) dovrebbe essere
> reliable.
>

Aggiungo TCP_NODELAY su socket di tipo SOCK_STREAM (TCP):

import socket
s = socket.socket()
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)

In genere viene usato in protocolli molto "parlanti" quali FTP e SMTP.
Se i messaggi sono brevi lo speedup è considerevole (quasi il doppio)
quindi puoi valutare se usare quello anzichè SOCK_DGRAM (UDP) che come è
noto non è reliable in quanto a recapito e integrità dei dati.
Riguardo MSG_OOB, non riesco proprio a immaginare a cosa ti serva. Ad oggi
credo sia, di fatto, completamente inutile ergo molto probabilmente *non*
ti serve.

--- Giampaolo
http://grodola.blogspot.com/
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140906/128f5aa9/attachment-0001.html>


Maggiori informazioni sulla lista Python