Python Socket errno 10054 nur, wenn client.py läuft
Gibt es einige andere Beiträge zu diesem Problem, aber keiner hat mir helfen mit mir.
Ich bin versucht zu bauen, eine insgesamt einfache server - client-Beziehung in python
server.py
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1",8889))
s.listen(1)
try:
while True:
client, add = s.accept()
data = client.recv(1024)
if not data:
print 'No data'
print data
finally:
s.close()
client.py
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1",8889))
try:
while True:
message = 'Foo'
s.send(message)
ans = s.recv(1024)
print ans
finally:
s.close()
Ich beginne mit den server, aber wenn ich versuche auf dem client ausgeführt werden, ich bin immer dies Errno 10054 --> An existing connection was forcibly closed by the remote host
Während die Anfrage des Browsers mit der ip und den zugehörigen port, ich bekomme einige Daten.
Ich bin ruhig, neue Vernetzung, also bitte erklären, was offensichtlich sein könnte, die falsch in meinem code.
EDIT* Hauptsache ist, dass der client ist irgendwie falsch, denn es gibt auch eine leere Zeichenfolge auf recv
Danke im Voraus
- errorTab[10054] = "Die Verbindung wurde zurückgesetzt." könnten Sie post die ganzen Fehler?
- sicher, ich aktualisierte es, sorry
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sich der Kunde nicht empfangen etwas von dem server, weil der server nicht senden, nichts.
Auf der server-Seite nach
print data
hinzufügenclient.send(data)
sendet den string an den client zurück.Ich vermute:
Akzeptiert der server einen socket, und dann tut
Der client dies tut, in der Zwischenzeit:
Wenn nun ein anderer client eine Verbindung zum server dann
client
ersetzt, der sockel Müll gesammelt und geschlossen.s.recv(1024)
wird dann sagen, dass die Verbindung zurückgesetzt wird.Haben Sie einen Blick auf
import select
oder verdreht (google), um mehrere verbindungen auf einmal.