Also TCP und UDP unterscheiden sich in den Punkten, dass UDP die einfache Variante von TCP ist, dafür gedacht, kurze, einfache Informationen ohne Absicherung zu verpacken.
TCP stellt eine synchronisierte Verbindung her, und beide Seiten zählen die Byte, die empfangen bzw gesendet wurden. Damit kannst du feststellen, ob Daten verschütt gegangen sind. Ist das der Fall, übernimmt es das Protokoll, die verlorenen Teile neu zu senden, bis es richtig angekommen ist. Deswegen ist TCP für große Datenmengen und hohe Datensicherheit prädestiniert.
UDP kommt viel schlanker daher, dh du hast weniger Overhead, es wird nur die Nachricht übermittelt, dabei wird nicht geprüft, ob sie ankam oder so. Du hast aber in beiden Geschichten noch die Sicherheitsmaßnahmen von Ethernet und IP, die zb CRC Summen mitschicken, um fehlerhafte Übertragungen zu finden.
Gute Beispiele für die Protokollwahl: SNTP, das Simple Network Time Protocol, was benutzt wird, um von einem Server eine Uhrzeit zu beschaffen nutzt UDP, es wird eine UDP Anfrage an den Server geschickt "Wie spät ist es?" Die Rücksendeadresse ist bekannt, da das UDP Protokoll den Absenderport mitschickt und der SNTP Port abgesprochen ist.
Die AntwortIP steck im IP-Datagramm, was die UDP-Message enthält.
Und da es nicht wichtig ist, ob die Message nun ankommt, braucht nicht abgesichert zu werden, wenn es keine Antwort gibt, sendet man einfach die Anfrage nochmal.
Bei ner Geschichte wie FTP wird TCP benutzt. Hier ist es wichtig, dass die Pakete alle ankommen, um den Inhalt richtig aufbauen zu können. Ausserdem geht es nicht um nur 4, 5 Bytes, sondern sendet direkt große Datenmengen, z.b. ein 35MB Video-File, bei dem es wichtig ist, dass alle Bytes in der richtigen Reihenfolge und vollständig ankommen. Der Mehraufwand fällt hier nichtmehr ins Gewicht, aber man hat halt mehr Overhead pro Paket, um 35MB zu transferieren, brauchst du nochmal 35kb an Verwaltungskram, der übertragen werden muss.

Mein Tipp: Wenn du nur Schalten möchtest und einzelne Messwerte brauchst, dann nimm UDP, sende die Geschichte und prüfe mit ner zweiten UDP Anfrage, ob auch alles geklappt hat, dh der neue Status geschaltet wurde. Das sollte auch bei deinen Sensordaten reichen, wenn du damit zb nur Raumtemperatur oder so übertragen willst.
Eine zusätzliche Datensicherung könntest du dann noch in die UDP-Message schreiben, zb Anzahl der Bytes, Messwerte, Prüfsumme .

Was mich interessieren würde, womit möchtest du das PC Programm schreiben, und wie sprichst du die Netzwerkkarte an, bzw. sagst dem Betriebsystem, dass du einen Port möchtest und die und die Daten schreiben willst?