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

时间:2018-08-01 12:24:26

标签: c# c++ tcp winsock winsock2

我有一个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);
}

1 个答案:

答案 0 :(得分:0)

好吧,在使用C#和Python多年之后,我忘记了带符号和未带符号的char *。那就是问题。.感谢您的帮助!