首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的客户机程序使用python套接字api仅接受来自服务器的一个字节

我的客户机程序使用python套接字api仅接受来自服务器的一个字节
EN

Stack Overflow用户
提问于 2019-09-07 17:14:35
回答 1查看 150关注 0票数 2

我正试着从电脑数控系统的HAAS控制器那里获取机器数据。它有一个名为MDC的内置软件,它充当服务器。我需要编写一个客户端程序来向MDC的IP和端口号发送请求。当我发送请求和接收请求时,服务器似乎是一次发送一个字节,所以我一次只能捕获一个字节,其他的都会丢失。如何获取完整的数据。我使用的是Python的socket模块。

我使用了while循环,基于前面关于堆栈溢出的问题,但看起来服务器正在发送数据并关闭连接,当我的客户端程序再次循环时,其他数据丢失,连接关闭。

代码语言:javascript
复制
# 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()

预期输出为:

代码语言:javascript
复制
>PROGRAM, MDI, IDLE, PARTS, 380

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

EN

回答 1

Stack Overflow用户

发布于 2019-09-07 17:20:21

多一点代码会很有帮助,但我会试着用你给我们的代码来帮助我们

你可以试试这个

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57832305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档