Endlosschleife bei PYthon Server TCP Beispiel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sico
User
Beiträge: 6
Registriert: Samstag 4. Februar 2012, 08:59

Hi

ich habe diesen Code und würde gerne erreichen, dass das Script nach dem Empfangen direkt wieder auf eine Nachricht wartet. So wie ich es jetzt habe wird aber das Script nach dem ersten Empfangen beendet.

Was kann ich tun?

Code: Alles auswählen

import socket


TCP_IP = '0.0.0.0'
TCP_PORT = 5005
BUFFER_SIZE = 20  # Normally 1024, but we want fast response

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

conn, addr = s.accept()
print 'Connection address:', addr
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data)  # echo
conn.close()
BlackJack

@Sico: Die Schleife wird beendet wenn die Gegenseite die Verbindung geschlossen hat. Du bräuchtest halt noch eine Schleife um den gesamten Vorgang des Annehmens einer Verbindung und dem verarbeiten der Daten.
Sico
User
Beiträge: 6
Registriert: Samstag 4. Februar 2012, 08:59

ok, aber wie genau mach ich das?
BlackJack

@Sico: Du schaust welcher Code wiederholt werden muss um statt eine Verbindung beliebig viele zu bedienen, und steckst den in eine ``while True``-Schleife. Wenn Du das nicht kannst, dann solltest Du vielleicht mit den Grundlagen anfangen und nicht gleich mit Netzwerkprogrammierung. :-)
Antworten