如何使用zmq/zeromq从传递给python的字符串表示(字节数组)中获取整数/浮点数
How to get integer / float number from a string representation ( array of bytes ) delivered to python using zmq / zeromq?
我使用的是一个C++服务器和一些带有zmq
(ZeroMQ)库的Python客户端。我想向客户端发送一个float
和一个integer
。
我已经阅读了zmq
的手册,但我在从C++代码发送char array
以外的任何其他内容时遇到问题,python
客户端无法将其解释为integer
或float
。
我的C++代码如下:
// Socket to talk to clients
void *context = zmq_ctx_new();
void *responder = zmq_socket(context, ZMQ_REP);
int rc = zmq_bind(responder, "tcp://*:5555");
int msg_cnt = 0;
while (1) {
char data[] = "M3:155";
sendCommand(responder, data);
}
static void sendCommand(void* r, char* cmd) {
static int n;
char buffer[10];
zmq_recv(r, buffer, 10, 0);
zmq_send(r, cmd, sizeof(cmd), 0);
std::cout << std::to_string(n++) << ". command sent." << std::endl;
Sleep(1);
}
python客户端是这样的:
context = zmq.Context()
# Socket to talk to server
print("Connecting to hello world server")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
#print("Sending request %s ")
socket.send(b"I am here.")
# Get the reply.
message = socket.recv()
#message = b"M5:-"
print("Received reply [%s]" % (message))
match = re.match(b'.*(Md+):(d+)', message)
print ("Command is: ", match.group())
print ("Motor: ", match.group(1))
print ("Target Angle: ", match.group(2))
python的输出:
收到回复[b'M3:155x00xcc']
命令为:b'M3:155'
电机:b'M3'
目标角度:b'155'
如何将b'155'
解析为int
或float
?
提前谢谢!
Erm。。。
3>> float(b'155')
155.0
相关文章:
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中将整数转换为其数字数组
- 如何将带有不定条目的行读取到数字数组中?
- 对于非常大的输入,缺少和重复 1..n 的数字数组.使用1..n系列特性的解决方案.溢出问题
- 有没有一种方法可以接受数字数组而不接受垃圾值的输入
- 从数字数组中删除重复
- 如何打印给定i和j的数字数组,使得i的所有元素的总和等于j
- 将数字与数字数组进行比较
- 将数字数组保存到Spesific文件中,然后稍后调用
- 从排序的数字数组中返回数字范围的最快方法是什么?
- 如何通过libpq c api插入字节的数组
- 无法让我的代码正确排序用户输入的数字数组(使用递归)
- i2c中的字节指针数组
- 以 C++ 为单位递增 16 字节字符数组
- new[] 一个包含构造函数的字节对象数组没有错,对吧?
- 创建未知长度的字节/字符数组
- 我如何将bitset转换为字节/uint8数组
- C++ <--> C# 修改字节编组数组
- 将m个字节的数组拆分为n个字节的块
- c++到c#:有3个元素的字节指针数组等于什么?