Für einen groben Überblick über die Unterschiede ist Wikipedia ganz nützlich:
TCP UDP
TCP ist verbindungsbasiert, d.h. vor der Kommunikation muss eine Verbindung eingerichtet werden, weshalb auch ein Broadcast nicht möglich ist. Dafür ist jedoch sichergestellt, dass alle geschickten Pakete auch wirklich ankommen. Dies ist in UDP anders. UDP benötigt keinen Verbindungsaufbau, dafür können aber Daten verloren gehen.
Ich verwende in einem Spiel von mir auch
TCP und UDP.
TCP für die eigentliche Kommunikation und UDP für einen Broadcast, mit dem ich die im Netzwerk verfügbaren Server abfrage.