嗨,我必须发送和接收结构化的消息,这怎么可能使用管道
我的留言是这样的
typedef struct{
char[20] myMessage,
int count,
char[10] address
} sendMessage;
我知道我可以使用 writefile/readfile 发送字符串消息,但我如何发送结构变量。
最佳答案
您可以通过通常调用一侧的 WriteFile
和另一侧的 ReadFile
来完成。请务必记住,它们可以写入和读取的字节数少于请求的字节数,因此应在循环中使用它们,直到接收/传输所有数据。
对于固定大小的读取和写入,有时我发现将管道句柄/描述符重新包装到 FILE*
结构中很方便,因此短读取和短写入由 C 运行时库处理。在 Windows 上,它分两个阶段完成:_open_osfhandle
获取句柄的 CRT lowio 文件描述符,然后 _fdopen
获取 FILE*
用于 lowio 描述符。 (警告:对 _fdopen
使用 _O_BINARY
以确保没有换行符转换)。
关于c++ - 如何通过管道发送和接收结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610998/