我有一个单独的日志文件记录数据。
Python脚本有时运行24小时后,某些数据与日志文件不同。日志文件包含正确的数据,并且数据仅为0或1。
client.py:
import time
import socket
import sys
from datetime import datetime
starttime=time.time()
def send_command(command):
try:
s.sendall(command.encode())
print ("Command sent")
except Exception as e:
print (e)
def rev_data():
data = s.recv(1024)
print ("Data received: ", data)
return data
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
print ("Socket successfully created")
except socket.error as err:
print ("socket creation failed with error ", err)
sys.exit()
port = 8000
try:
host_ip = '192.168.1.10'
s.settimeout(1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# connecting to the server
message = s.connect_ex((host_ip, port))
print (message)
except socket.gaierror:
# this means could not resolve the host
print ("there was an error resolving the host")
print('End')
s.shutdown(socket.SHUT_RDWR)
s.close #close socket
sys.exit()
try:
while True:
now = datetime.now()
this_time = now.strftime("%H:%M:%S")
print (this_time)
send_command('RD R001\r')
a = rev_data()
send_command('RD R002\r')
b = rev_data()
send_command('RD M003\r')
c = rev_data()
finally:
print('End')
s.shutdown(socket.SHUT_RDWR)
s.close #close socket
sys.exit()
我无权访问服务器代码。我的client.py有什么问题吗?感谢您的提前帮助!
取决于服务器对这些命令的快速响应,该日志文件必须很大。
首先,我建议在该无限循环中短暂入睡:
import time
...
# Sleep for 5 seconds
time.sleep(5)
由于我们不知道您如何记录接收到的数据或其内容,因此我们无法对此做任何假设。但是,通常不需要以这种方式(太多,如此之快,没有明显的原因)敲击I / O。