homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author giampaolo.rodola
Recipients giampaolo.rodola
Date 2008年07月04日.02:18:00
SpamBayes Score 3.820895e-05
Marked as misclassified No
Message-id <1215137881.67.0.331390936209.issue3278@psf.upfronthosting.co.za>
In-reply-to
Content
When the SO_OOBINLINE option is used against a socket, out-of-band data
should be placed in the normal data input stream as it is received.
In fact this is what happens on Windows and Linux by using the script below.
On FreeBSD this does not happen. select instead of returning a
"readable" file descriptor returns an "exceptional" file descriptor. 
Later, when we try to read some data from the socket, the following
exception is raised:
Exception in thread Thread-1:
Traceback (most recent call last):
 File "/usr/local/lib/python2.5/threading.py", line 460, in __bootstrap
 self.run()
 File "/usr/local/lib/python2.5/threading.py", line 440, in run
 self.__target(*self.__args, **self.__kwargs)
 File "_test2.py", line 14, in server
 data = conn.recv(1024, socket.MSG_OOB)
error: (22, 'Invalid argument')
--- code ---
import socket, select, threading, time, os
def server():
 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 s.bind(('', 1024))
 s.listen(1)
 conn, addr = s.accept()
 conn.setblocking(0)
 conn.setsockopt(socket.SOL_SOCKET, socket.SO_OOBINLINE, 1)
 while 1:
 r, w, e = select.select([conn], [conn], [conn], 0.01)
 if r:
 # the socket is supposed to be in the "readable" list
 data = conn.recv(1024)
 print "read -> " + data
 if e:
 # ...but not in the "exception" list
 data = conn.recv(1024, socket.MSG_OOB)
 print "expt -> " + data
threading.Thread(target=server).start()
time.sleep(0.1)
s = socket.socket()
s.connect(('127.0.0.1', 1024))
s.sendall('x', socket.MSG_OOB)
--- /code ---
History
Date User Action Args
2008年07月04日 02:18:01giampaolo.rodolasetspambayes_score: 3.82089e-05 -> 3.820895e-05
recipients: + giampaolo.rodola
2008年07月04日 02:18:01giampaolo.rodolasetspambayes_score: 3.82089e-05 -> 3.82089e-05
messageid: <1215137881.67.0.331390936209.issue3278@psf.upfronthosting.co.za>
2008年07月04日 02:18:00giampaolo.rodolalinkissue3278 messages
2008年07月04日 02:18:00giampaolo.rodolacreate

AltStyle によって変換されたページ (->オリジナル) /