Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试通过带有winsock的套接字发送一些数据。我遇到的问题是我的数据(实际上是一个 char 数组)可能包含一些零,但 char 0x00 代表空字符,并且所有后续字符都被剪切,因为它代表终止字符。有谁知道我应该如何解决这个问题?我可以使用什么替代方案?
我想做的是用winsock发送字节,它可能代表整数、字符数组或其他东西。接收部分将负责正确阅读,但这不是这篇文章的关注点。
我想你可能正在做这样的事情:`
字符 [100];
//用s做事
发送(袜子,s,strlen(s),标志);`
strlen 通过计算有多少个字符来找到字符串的长度,直到它找到 NULL (0)。
使数据流中的前两个字节成为您要发送的缓冲区的长度。然后发送那么多字节。
在另一端,读取这两个字节,然后您就知道应该收到多少字节了。
这将让你解决这个问题。
也是谷歌网络字节顺序。有一些方便的函数调用,使可移植性变得容易。