0

我正在尝试通过带有winsock的套接字发送一些数据。我遇到的问题是我的数据(实际上是一个 char 数组)可能包含一些零,但 char 0x00 代表空字符,并且所有后续字符都被剪切,因为它代表终止字符。有谁知道我应该如何解决这个问题?我可以使用什么替代方案?

我想做的是用winsock发送字节,它可能代表整数、字符数组或其他东西。接收部分将负责正确阅读,但这不是这篇文章的关注点。

4

2 回答 2

1

我想你可能正在做这样的事情:`

字符 [100];

//用s做事

发送(袜子,s,strlen(s),标志);`

strlen 通过计算有多少个字符来找到字符串的长度,直到它找到 NULL (0)。

于 2012-10-06T19:37:58.313 回答
0

使数据流中的前两个字节成为您要发送的缓冲区的长度。然后发送那么多字节。

在另一端,读取这两个字节,然后您就知道应该收到多少字节了。

这将让你解决这个问题。

也是谷歌网络字节顺序。有一些方便的函数调用,使可移植性变得容易。

于 2012-10-06T22:26:15.800 回答