我有一个C ++客户端,使用Winsock2等待来自C#服务器的答案。 C#服务器将答案作为字节数组发送。 C ++客户端使用负值接收它。 我尝试在C ++中使用无符号char数组,但winsock在recv()函数中不支持它。 我想念什么?
C#侧:
private void Send(byte[] arrayToSend, NetworkStream stream)
{
if (stream.CanWrite) { stream.Write(arrayToSend, 0, arrayToSend.Length); stream.Flush(); }
else { ... }
}
C ++方面:
TCPConnection::Receive(int timeout, char recv[BUFFER_LENGTH])
{
int iResult = recv(m_socket, recv, BUFFER_LENGTH, 0);
if (iResult <= 0) { ... }
recv[iResult] = '\0';
//FOR DEBUG
std::string s(recv, iResult);
}
答案 0 :(得分:0)
好吧,在使用C#和Python多年之后,我忘记了带符号和未带符号的char *。那就是问题。.感谢您的帮助!