Absturz bei accept() / recv()
Verfasst: Samstag 27. November 2010, 10:31
Hallo,
ich habe ein Problem mit den Sockets. Mein Betriebssystem ist eine Windows 7 64Bit Version. Python habe ich auf Version 2.6.4.
Hier ist erstmal mein Programmcode. Das ist der Echo Server aus dem Python Handbuch:
Wenn ich das Programm laufen lasse hängt es sich immer an dieser Befehlszeile auf:
Nun ist meine Frage woran das liegen könnte?
Ich habe das Programm bereits mit der 32-als auch mit der 64-Bit Version von Python ausprobiert. Auch auf meinem alten Windows XP Rechner hängt sich das Programm an der selben Stelle auf.
Dann habe ich einen UDP Server aus einem anderen Beispiel genommen.
Hier hängt er sich an dieser Befehlszeile auf:
Außerdem habe ich versucht die beiden Server nicht blockierend laufen zu lassen. Dann kommt allerdings die Fehlermeldung, dass ein "nicht blockierender Prozess nicht sofort ausgeführt werden konnte".
Ich danke euch schonmal im voraus für die Antworten
Grüße
Schandbube
ich habe ein Problem mit den Sockets. Mein Betriebssystem ist eine Windows 7 64Bit Version. Python habe ich auf Version 2.6.4.
Hier ist erstmal mein Programmcode. Das ist der Echo Server aus dem Python Handbuch:
Code: Alles auswählen
# Echo server program
import socket
HOST = '' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
conn.send(data)
conn.close()
Code: Alles auswählen
conn, addr = s.accept()
Ich habe das Programm bereits mit der 32-als auch mit der 64-Bit Version von Python ausprobiert. Auch auf meinem alten Windows XP Rechner hängt sich das Programm an der selben Stelle auf.
Dann habe ich einen UDP Server aus einem anderen Beispiel genommen.
Code: Alles auswählen
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("localhost", 61542))
daten, addr = s.recvfrom(1024)
print "[%s] %s" % (addr[0], daten)
print daten
s.close()
Code: Alles auswählen
daten, addr = s.recvfrom(1024)
Ich danke euch schonmal im voraus für die Antworten

Grüße
Schandbube