如何从Python套接字向C套接字发送字符串?

问题描述 投票:0回答:1

我曾尝试将字符串从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个字符,我认为这是换行符。因为我不想要...

python c sockets networking ctypes
1个回答
1
投票

C字符串以空字符结尾,这意味着有一个0('\0')字符标记了字符串的结尾。没有该字符,您将使用内存中接下来发生的任何事情作为字符串的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.