Sells, Fred wrote: > I'm using MSW XP Pro with Python 2.4 to develop but production will be Linux > with Python 2.3. (could upgrade to 2.4 if absolutely necessary) I can also > switch to Linux for development if necessary. > > I am writing some python to replace proprietary software that talks to a > timeclock via UDP. > > The timeclock extracts the sending port from the UDP header and uses that > for all response messages. > > I cannot find out how to set the sending port in the header. Windows XP > appears to set an arbitrary port. I've been using ethereal to analyze > network traffic and it seems that if I can set the sending port, I should be > OK. > > I have been googling various combinations of "python udp ..." for the last > two hours and have not found anything that addresses how to set the sending > port. I'm guessing that this may be in setsockopt but don't see any > parameters that "click".
Try binding the address ('',0) which means any address, any port on this box. Then get the bound address with getsockname(). Below is a copy of an interactive try-out... >>> import socket >>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) >>> s.bind(('',0)) >>> s <socket._socketobject object at 0xb7d9ee0c> >>> s.getsockname() ('0.0.0.0', 32775) >>> So in this case, port 32775 was chosen to bind to. Steve -- http://mail.python.org/mailman/listinfo/python-list