TCP Сокет. Иногда приходят неверные данные - C#

Узнай цену своей работы

Формулировка задачи:

При отправка данных с клиента на сервер....иногда случается так, что данные отправленные на сервер клиентом не совпадают в теми что пришли на сервер. Протокол TCP. Синхронная передача и приём. Например..отправляю 50 файлов..25 передаст нормально..на 26 ляжет.. Немного псевдокода
foreach(Filename in Filenames)
{
SEND(Filename);
SEND(SIZE OF (FILE));
SEND (FILE);
}
 
Каждый из этих методов что-то отсылает и что-то принимает. (Синхронно)
На сервере тоже самое только
RECV(Filename)
RECV (SIZE)
RECV(FILE
Вот скриншот того,что иногда приходит вместо данных. У меня вопрос только 1. Это где-то ошибка в коде..или нужно дополнительно фильтровать то, что пришло на сервер?

Решение задачи: «TCP Сокет. Иногда приходят неверные данные»

textual
Листинг программы
        public void ReciveCommand(Socket Handler)
        {
            int BytesRecive = 0;
            int BytesSend = 0;
            byte[] Message = new byte[1024];
            string MessageString = "";
 
            int CommandSize = 0;
            string Size = "";
            string TempSize = "";
 
            bool isSize = true;
 
            while (isSize)
            {
                BytesRecive = Handler.Receive(Message, 1, SocketFlags.None);
                TempSize = ByteArrayToStr(Message, 1);
                if (TempSize.Equals("!"))
                {
                    isSize = false;
                }
                else
                {
                    Size += TempSize;
                }
            }
            BytesSend = Handler.Send(StrToByteArray("}"), 1, SocketFlags.None);
            CommandSize = int.Parse(Size);
            BytesRecive = Handler.Receive(Message, CommandSize, SocketFlags.None);
            BytesSend = Handler.Send(StrToByteArray("}"), 1, SocketFlags.None);
            MessageString = ByteArrayToStr(Message, BytesRecive);
 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы