我的客户端程序只接受来自使用 python 套接字 API 的服务器的一个字节



>我正在尝试从 CNC HAAS 控制器获取机床数据。它有一个名为MDC的内置软件,它充当服务器。我需要编写一个客户端程序来向 MDC 的 IP 和端口号发送请求。当我发送请求并收到请求时,似乎服务器一次发送一个字节,因此我一次只能捕获一个字节,其他字节会丢失。如何获取整个数据。我正在使用Python的套接字模块。

我根据之前关于 Stack Overflow 的问题使用了 while 循环,但似乎服务器正在发送数据并关闭连接,当我的客户端程序再次循环时,其他数据丢失并且连接已关闭。

# Import socket module 
import socket  
# Create a socket object 
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)          
# Define the port on which you want to connect 
port = 5051                
# connect to the server on local computer 
s.connect(('192.168.100.3', port)) 
#sending this message will give me the status of the CNC machine

s.send(("?Q500").encode()) 

d= (s.recv(1024)).decode() 

print(d)
s.close()

预期输出为:

>PROGRAM, MDI, IDLE, PARTS, 380

我得到的输出是>,这只是实际输出的第一个字符(字节(。

更多的代码会有所帮助,但我会尝试使用您提供给我们的内容进行 hlp

你可以试试这个

s.send(("?Q500").encode("utf-8")) # just add an encoding
fullData = ""
while True:
d = (s.recv(1024)).decode("utf-8")
fullData += d
if not d:
print(fullData)
s.close()
break

最新更新