Приветствую! Не знаю, в ту ли ветку пишу, но приложение-сервер у меня на C#, а приложение-клиент на C++. Проблема в следующем: необходимо передавать на сервер строку типа const wchar_t*.
Код на клиенте:
bool SocketClient::SendData(const wchar_t *p_Data)
{
int iResult;
if (m_ConnectSocket == INVALID_SOCKET)
return false;
iResult = send(m_ConnectSocket, (char*)p_Data, (int)(wcslen(p_Data) * sizeof(wchar_t) + 2), 0);
...
}
Код на сервере:
public void ClientDoProccess(object clientObject)
{
using (TcpClient tcpClient = (TcpClient)clientObject)
{
using (NetworkStream stream = tcpClient.GetStream())
{
while (listen)
{
while (stream.DataAvailable)
{
byte[] readBuf = new byte[tcpClient.Available];
// получаю данные
int count = stream.Read(readBuf, 0, readBuf.Length);
// а вот как их преобразовать к string?
...
}
Thread.Sleep(100);
}
}
}
}
На сервере получаю набор байтов, а как их преобразовать назад к строке? Как я их не пытался декодировать через Encoding, ничего кроме набора бессмысленных символов не получаю. Как делать правильно?