我曾尝试将字符串从Python套接字发送到C套接字,但是由于某种原因,当在C语言中接收字符串时,我必须额外接收2个字符,我认为这是换行符。由于我不需要换行符,并且由于我认为有一种更好的方法来执行我的工作,如何将字符串从Python套接字发送到C套接字?我需要使用Python模块ctypes吗?谢谢
这是我正在执行的行(在Python中:)>
sock.send(bytes("FPUT", "utf-8"))
并且为了接收整个消息,我必须用C接收6个字符。这是在我注意到错误之前尝试的接收代码:
char* msghdr = (char*) malloc(4*sizeof(char));
recv(i, msghdr, 4, 0); //i is the socket
我曾尝试将字符串从Python套接字发送到C套接字,但是由于某种原因,当在C语言中接收字符串时,我必须额外接收2个字符,我认为这是换行符。因为我不想要...
C字符串以空字符结尾,这意味着有一个0('\0'
)字符标记了字符串的结尾。没有该字符,您将使用内存中接下来发生的任何事情作为字符串的一部分。