我正在编写一个TCP python脚本,它将充当服务器并从机器(客户端)检索温度读数。我需要从服务器向客户端传递命令并侦听响应的输出。我成功到达cmd定义行,但是当调用s.accept()时,我没有响应客户端。
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
编辑:
我相信你是对的,我应该把我的代码视为服务器上的客户端和温度读数。当我去s.recv()时,我现在在“这里2”之后左转。
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)
答案 0 :(得分:0)
通常,TCP服务器accept会在等待客户端连接时阻塞。您是否检查过以确保您的客户可以并且正在连接?您可以使用tcpdump或类似工具来观察网络活动并确保客户端正在连接。