我正在使用 raspberry Pi 和 Scratch 进行一个项目。我需要将远程传感器协议与 C++ 一起使用。我尝试过移植 Python 代码,但我无法让 C++ 返回空值。
原始 Python 代码如下所示:
import socket
from array import array
HOST = '192.168.1.101'
PORT = 42001
scratchSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
scratchSock.connect((HOST, PORT))
def sendCMD(cmd):
n = len(cmd)
a = array('c')
a.append(chr((n >> 24) & 0xFF))
a.append(chr((n >> 16) & 0xFF))
a.append(chr((n >> 8) & 0xFF))
a.append(chr(n & 0xFF))
scratchSock.send(a.tostring() + cmd)
sendCMD('sensor-update "dave" 201')
我在 C++ 中的尝试如下所示:
char* scratchencode(string cmd)
{
int cmdlength;
cmdlength = cmd.length();
char* combind = new char[20];
const char * sCmd = cmd.c_str();
char append[]={(cmdlength >> 24) & 0xFF, (cmdlength >> 16) & 0xFF, (cmdlength >> 8) & 0xFF, (cmdlength & 0xFF)};
strcpy(combind,append);
strcpy(combind,sCmd);
return combind;
}
需要说它不起作用,任何人都可以帮助移植代码,我试图在http://wiki.scratch.mit.edu/wiki/Remote_Sensors_Protocol上模仿 python 代码和原始文件,但没有成功。
克里斯