Ich setze mich gerade mit UDP Server Sockets auseinander und bin ein wenig verblüfft, dass ihre Benutzung scheinbar doch recht anders ist, als die von TCP Sockets.
Wenn ich den folgenden Codes ausführe...
Code: Alles auswählen
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:
(connSock, addr) = UDPSock.accept()
(data, addr) = connSock.rcv(buf)
if not data:
print "Client has exited!"
break
else:
print "\nReceived message '", data,"'"
# Close socket
UDPSock.close()
Scheinbar "mag" der UDP Socket das accept nicht. Googeln brachte mich zu folgendem Beispielcode, der ohne accept auskommt.Traceback (most recent call last):
File "/home/DrScheme/workspace/test/src/main.py", line 14, in ?
(connSock, addr) = UDPSock.accept()
File "/usr/lib/python2.4/socket.py", line 169, in accept
sock, addr = self._sock.accept()
socket.error: (95, 'Operation not supported')
Code: Alles auswählen
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()
Danke euch!