Ответ сервера сокета TCP Python

Я пишу сценарий TCP python, который будет действовать как сервер и получать показания температуры от машины (клиента). Мне нужно передать команду клиенту с сервера и прослушать вывод ответа. Я успешно достигаю строки определения cmd, но когда s.accept() называется i’M left hanging with no response from the client.

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

Редактировать:

Я считаю, что вы правы, я должен считать мой код клиентом и индикацией температуры на сервере. I do now get left hanging after «here 2» when I go to s.recv().

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)

1 ответ

  1. Обычно сервер TCP accept блокируется во время ожидания подключения клиента. Вы проверили, чтобы убедиться, что клиент может и подключается? Вы можете использовать такой инструмент, как tcpdump или аналогичный, чтобы наблюдать за сетевой активностью и убедиться, что клиент подключается.