win32 socket, "Operation not supported"

Dave Brueck dave at pythonapocrypha.com
Fri Dec 12 12:56:58 EST 2003


David wrote:
> I have written an app which opens a TCP connection to a server and uses a
protocol to communicate with it.
> Specifically, I've written a python IMD client for the molecular dynamics
application 'NAMD' (do searches for
> IMD and NAMD if you want to learn more).
>
> The protocol is very simple: both ends of the TCP connection can send
messages to the other side at any time; when data is
> available on a read socket, a full packet (with known size) is read in a
blocking fashion from the socket.

Are you doing a select or poll on the socket to ensure the read won't block?
(not relevent to your problem, just trying to understand your program)

> However, on Windows, I can connect and complete the initial handshake, and
receive periodic updates, but when I try to
>send a message
> to the server, socket.send gets an "Operation not supported".
>
> >From my reading of the win32 docs, the socket send call returns this in a
couple of situations:
> when a two-way socket had one half shut down and the send would have used the
shut down direction, or
> when an out of band message was sent on a socket type which does not support
it (such as UDP).
>
> Neither of these situations are true.  When I re-code the app in C, the
problem doesn't occur.  Anybody got some suggestions?
> (PS: the socket I/O is set to blocking, and the Nagle algorithm is disabled).

Could you send a stripped-down version of the Python code? If nothing else,
other Windows users can try it out too and report back their results.

-Dave






More information about the Python-list mailing list