Sockets
Von: christoph.lins@gmail.com [Profil]
Datum: 01.05.2008 18:16
Message-ID: <09a4d44a-1ed3-4c42-800a-4df6ef50b4e8@b64g2000hsa.googlegroups.com>
Newsgroup: de.comp.lang.python
Datum: 01.05.2008 18:16
Message-ID: <09a4d44a-1ed3-4c42-800a-4df6ef50b4e8@b64g2000hsa.googlegroups.com>
Newsgroup: de.comp.lang.python
Hey zemma, Ich habe ein Problem mit Sockets. Ich habe folgendes Client/Server Skript geschrieben: Client: [CODE] ... s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # support keep alive messages! s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 0) # do we need a settimout? could be useful s.connect((host, port)) sendPacket(s, "hallo du") time.sleep(3) sendPacket(s, "jaja denn halt") s.close() [/CODE] wobei sendPacket einen String beliebiger Länge verpackt und dann verschickt. Auf der anderen Seite der Server: [CODE] ... channel, info = service.accept() print "connection from", socket.gethostbyaddr(info[0]) txt = getPacket(channel) print txt channel.shutdown(2) channel.close() [/CODE] wobei getPacket das empfangene Packet entpackt und ausgibt. Das ganze funktioniert wunderbar. Dem geneigten Leser ist jedoch bereits aufgefallen, dass ich auf etwas anderes hinweisen will. Der Klient versucht nach einer kurzen Pause über die gleiche Connection nochmal ein Packet zu verschicken, jedoch hat der Server in der Zwischenzeit die Verbindung geschlossen und das Skript terminiert. Für mich ein bisschen überraschend: das Client-Skript gibt keinen Fehler aus und beendet nach den 3 Sekunden. Ich hätte erwartet, dass der Versuch, die bereits geschlossene Verbindung zu benutzen, schief geht und dies dann auch in eine Fehlermeldung resultiert. Irgendeine Idee, warum das nicht so ist? Was mache ich falsch? Thanks[ Auf dieses Posting antworten ]
