Viel über Netzwerktechnik zu lernen du noch hast ... (oder so ähnlich

).
127.0.0.1 oder localhost verwenden. Auf einem Server laufen ja auch mehrere Serveranwendungen (Web, Mail, DNS, DHCP, ...). Es Darf jedoch pro IP:Port kombination nur ein Programm lauschen (127.0.0.1:80 und 127.0.0.1:8080 geht und 127.0.0.1:80 und 127.0.0.2:80 auch). Zudem hast du ja auf dem loopback sogar 16777214 Adressen frei (von 127.255.255.254 bis 127.0.0.1)

.
Ein Socket ist durch 5 Elemente vollständig definiert: Quell-IP, Quell-Port, Ziel-IP, Ziel-Port, Protokoll
IPAddress.Any bietet nur eine Hilfeleistung, damit du nicht Tausende Sockets erstellen/verwalten musst (das macht schon das OS/Kernel). Jedoch kann man mit diesem Socket (IPAddress.Any) keine Daten Senden, Empfangen. Ja nicht mal der 3-way handshake klappt. Er sagt nur dass eine Verbindung eingehen würde, mit der IP X und dem Port Y. Jetzt musst du mit accept() bestätigen dass du diesen willst. Dabei wird eine neuer/konkreter/voll definierter Socket erstellt. Mit diesen kannst du dann mit genau diesem einen Partner sprechen. Der Socket mit (IPAddress.Any) lauscht weiterhin auf andere eingehende Verbindungen.