О 2:
UDP будет намного сложнее, так как это протокол на основе дейтаграмм, существуют ограничения на количество данных, которые вы можете отправлять одновременно; маловероятно, что вы сможете разместить целые изображения в одной дейтаграмме. Итак, вам придется работать с дифференциальными / частичными обновлениями, которые довольно быстро усложняются.
TCP, однако, основан на потоке и доставляет данные только в порядке. Если посередине пакет исчезает и его необходимо отправить повторно, все последующие пакеты должны ждать, даже если они были получены целевой машиной. Это создает задержку, которая часто очень нежелательна в интерактивных приложениях.
Так что UDP, вероятно, ваш лучший выбор, но вы не можете разработать его исходя из предположения, что вы можете отправлять целые изображения за раз, вам нужно придумать способ отправки только части изображений.