Ich schreibe ein TCP-Python-Skript, das als Server fungieren und eine Temperatur lesen von einer Maschine (der Client) abrufen wird. Ich muss einen Befehl vom Server an den Client übergeben und auf eine Ausgabe der Antwort warten. Ich erreiche erfolgreich die cmd-Definitionszeile, aber wenn s.accept() aufgerufen wird, hänge ich ohne Antwort vom Client.TCP Python Socket Server Antwort
Server.py
import socket
port = 7777
ip = raw_input('192.168.62.233')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((ip, port))
s.listen(1)
print "waiting on port: ", port
while True:
cmd = raw_input('KRDG? A[term]')#command send to client
conn, addr = s.accept()
s.send(cmd)
print "It sent"
data = conn.recv(4096)
print "Received:", data, " from address ", addr
Edit:
ich Sie richtig sind glauben, sollte ich meinen Code der Client und der Temperaturanzeige auf dem Server in Betracht ziehen. Ich werde jetzt nach "hier 2" hängen bleiben, wenn ich nach s.recv() gehe.
Client.py
import socket
ip = '192.168.62.233'
port = 7777 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
print 'here'
s.send('KRDG? A[term]')
print 'here 2'
data = s.recv(4096)
print 'here 3'
s.close()
print 'Received', repr(data)
Normalerweise ist es umgekehrt: Der Client fragt den Server per Befehl ab. Wo ist der Clientcode? – Daniel
Ich glaube, du bist richtig, ich sollte meinen Code der Client und Temperaturanzeige auf dem Server betrachten. Ich werde jetzt hängen nach "hier 2", wenn ich zu s.recv() gehen, wie in der Bearbeitung gesehen –
@ScottMacdonald So können Sie erfolgreich eine Verbindung zu Ihrem Server bei IP: Port, und senden Sie Daten, aber Sie don Ich bekomme nichts zurück. Hast du den Servercode? Können Sie am Server überprüfen, ob die Client-Daten empfangen werden und was der Server damit macht? – margold