Вот я бы tcp не рекомендовал. Вообще в большинстве многопользовательских играх tcp противопоказан, будете получать задержки, фризы. Поле у Вас будет одно на двоих и получите рассинхронизацию, что противник будет съедать яблоко, которое Вы уже съели.
Используете upd протокол, по нему регулярно, раз в какой-то промежуток времени, получаете координаты всего списка змейки от противника и направление движения, а сами, ему же, транслируете свои. На своем экране, у змейки противника никакой логики, только отображение: отобразили все полученные координаты и двигаете ее в полученном направлении, пока не получили новые данные.
Я когда то, как курсовую, сдавал тетрис по сети, только на wpf. Реализация была именно такая как описал. Игра была только в локалке, между компами, без всяких центральных серверов.