TCP C++客户端从C#服务器接收字节数组



我有一个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] = '';
//FOR DEBUG
std::string s(recv, iResult);
}

好吧,在使用C#和Python几年后,我忘记了有符号和无符号的char*。这就是问题所在。。谢谢你的帮助!

最新更新