我正在尝试使用winsock通过套接字发送一些数据。我遇到的问题是我的数据(实际上是一个char数组)可能包含一些零,但char 0x00表示空字符,所有后面的字符都被剪切,因为它代表终止字符。有没有人知道如何解决这个问题?我可以使用哪种替代方案?
我想要做的是使用winsock发送字节,这可能代表整数,字符数组或其他东西。接收部分将正确处理阅读,但这不是本文的关注点。
答案 0 :(得分:1)
我想你可能会这样做: `
char s [100];
//用s
做事发送(sock,s,strlen(s),flags); `
strlen通过计算字符串的数量来找到字符串的长度,直到找到NULL(0)。
答案 1 :(得分:0)
在数据流中输入前两个字节,即要发送的缓冲区的长度。 然后发送那么多字节。
在另一端,读取两个字节,然后你就知道应该有多少字节。
可让您解决此问题。
也是google网络字节顺序。有一些方便的函数调用,使便携性变得容易。