我有一个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*。这就是问题所在。。谢谢你的帮助!