import socket, threading, time, binascii, struct from Configure import Debug thanks to all, here's my final code that works, if it helps anyone
import socket, threading, time, binascii, struct from Configure import Debug ZERO = chr(0) class Udp: def __init__(self, my_address, destination_address, timeout=2.0, log=None): self.MyAddress = my_address #(ip,port) self.Destination = destination_address #(ip,port) self.Socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.Socket.settimeout(timeout) self.Socket.bind(self.MyAddress) self.log = log def sendto(self, msg): nsent = self.Socket.sendto(msg, self.Destination) if Debug.Udp: print >>Debug.Log, '\t\t\t\t ==>', self.format(msg, send=True) return nsent def recvfrom(self, size=4096): data, addr = self.Socket.recvfrom(size) if self.log: print >>self.log, '\t\t\t\t<== ', self.format(data, send=False) return data def format(self, x, send): first = struct.unpack('>BBI', x[:6]) tmp = ' ctrl=%02x %02x n=%08x ' % first if len(x)>6: if x[-1]==ZERO: tmp += ' data="%s x00"' % x[6:-1] else: tmp += ' data="%s"' % x[6:] return tmp if __name__=='__main__': syncmsg = struct.pack('>BBI', 8, 0x4a, 0xaabbccdd) S = Udp( ('192.168.201.171', 1201) , ('192.168.201.72', 1202)) response = S.sendto(syncmsg) x = S.recvfrom() print x --------------------------------------------------------------------------- The information contained in this message may be privileged and / or confidential and protected from disclosure. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by replying to this message and deleting the material from any computer. --------------------------------------------------------------------------- -- http://mail.python.org/mailman/listinfo/python-list