Skinney Skrevet 4. august 2010 Del Skrevet 4. august 2010 Hei! Når jeg skal sende en melding med asynchat og en TCP-socket er det veldig enkelt å hente remote ip ved hjelp av self.accept() som i seg selv er obligatorisk i en TCP-tilkobling... Men hvordan gjør jeg dette hvis jeg bruker en UDP-socket? :S Lenke til kommentar
LostOblivion Skrevet 14. oktober 2010 Del Skrevet 14. oktober 2010 UDP fungerer jo på en annen måte (datagram), så jeg regner med du får et adresse-objekt fra funksjonen som henter UDP-pakken fra socket? # Client program from socket import * # Set the socket parameters host = "localhost" port = 21567 buf = 1024 addr = (host,port) # Create socket UDPSock = socket(AF_INET,SOCK_DGRAM) def_msg = "===Enter message to send to server==="; print "\n",def_msg # Send messages while (1): data = raw_input('>> ') if not data: break else: if(UDPSock.sendto(data,addr)): print "Sending message '",data,"'....." # Close socket UDPSock.close() # Server program from socket import * # Set the socket parameters host = "localhost" port = 21567 buf = 1024 addr = (host,port) # Create socket and bind to address UDPSock = socket(AF_INET,SOCK_DGRAM) UDPSock.bind(addr) # Receive messages while 1: data,addr = UDPSock.recvfrom(buf) if not data: print "Client has exited!" break else: print "\nReceived message '", data,"'" # Close socket UDPSock.close() Tatt herfra. Lenke til kommentar
snippsat Skrevet 14. oktober 2010 Del Skrevet 14. oktober 2010 (endret) UDP sockets bruker ikke tilkobling som tcp sockets. UDP socket kan motta datagrams fra all servere på nettverket og sende datagrams til alle hoster på nettverket. Derfor vil self.accept() og self.connect() virke for UDP. Det er mulig det er andre måter og løse det ønsker,eller tenke på om du trenger dette når du bruker UDP. Endret 14. oktober 2010 av SNIPPSAT Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå