Я создаю приложение C #, используя модель сервер-клиент, где сервер отправляет изображение (100 КБ) клиенту через сокет каждые 50 мс ...
Я использовал TCP, но, помимо издержек этого протокола, иногда клиент получал более одного изображения в сокете. И у меня до сих пор нет интеллектуального механизма разделения байтов каждого изображения (на самом деле, мне просто нужен самый последний).
Я пытался использовать UDP, но пришел к выводу, что не могу отправить 100 КБ дграм, только 64 КБ. И даже в этом случае я не должен использовать больше 1500 байт; в противном случае пакет будет разделен по сети, и вероятность потери части пакета будет больше.
Так что теперь я немного запутался. Должен ли я продолжать использовать TCP и помещать экранирующие байты в конце каждого изображения, чтобы клиент мог разделить их? Или я должен использовать UDP, посылать дграммы по 1500 байт и придумать механизм упорядочения и восстановления?
Ключевой целью здесь является очень быстрая передача изображений. Я не возражаю потерять некоторые по пути, пока клиент продолжает получать новые.
Или я должен использовать другой протокол? Заранее спасибо!