У меня есть сервер C ++, который преобразует некоторые данные изображения в клиент C # для его получения. Вот код ключа C ++:
while (TRUE)
{
//ret = recv(sClient, szMessage, MSGSIZE, 0);
Screen("aa.jpg");
std::string base64Str;
ReadPhotoFile("aa.jpg", base64Str);
const char* data = base64Str.c_str();
int len = strlen(data);
char* buff = const_cast<char*>(data);
SendAll(sClient, buff, len);}
и код ключа клиента C #:
private void ReceiveDataFromServer()
{
while (true)
{
try
{
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
stream.Read(buffer, 0, buffer.Length);
string base64Str = Encoding.UTF8.GetString(buffer);
HandleBimapDelegate hd = new HandleBimapDelegate(Base64StringToImage);
hd.Invoke(base64Str);
}
catch
{
break;
}
}
handleButtonEnableState(true);
}
когда я начинаю получать данные изображения, клиент замечает, что аргумент недействителен, я проверяю байтовый массив с сервера, размер массива составляет 65536. Как это решить?