' schrieb:Ich kann deine Probleme mit Delphi nicht nachvollziehen. Bei mir geht alles so, wie du dir das vorstellst.
Ich weise nochmals darauf hin, dass der Port, mit dem eine Verbindugn geöffnet wird, nicht der ist, über den später tatsächlich kommuniziert wird. Wenn ich in Delphi die Verbindung mit "127.0.0.1-60000" öffne, hat der Socket, über den dann die tatsächliche verbindung stattfindet, die Werte "127.0.0.1-1145" (Der Port, hier mit 1145 angegeben, hängt vom aktuellen Zustand des Betriebsystems ab. Mit jeden neuen Öffnen einer Verbundung wird der um 2 hochgezählt)
Du bist wahrscheinlich hier im Clinch mit dem Remote und Local Port. Eine geöffnete Verbindung hat immer zwei Ports, die auf dem lokalen Rechner und die auf dem Remote Rechner. Wenn Du als Client eine Verbindung zu einem Server öffnest, tust Du das immer zu einem bestimmten Port im Server (man muss ja erst mal wissen wohin man etwas zu sagen hat). Die TCP/IP Socketimplementation wählt dann typischerweise auf der lokalen Seite einen arbiträren noch freien Port und baut die Verbinding zwischen diesen beiden Ports auf. (Man kann für den lokalen Port auch einen fixed Port vorgeben aber das ist optional und ungebräuchlich, und zudem mit Problemen verbunden da ein sogenanntes Linger Feature in der Socketlibrary einen Port immer eine gewisse Zeit reserviert hält nachdem die Verbindung abgeschlossen wurde, und wenn Du dann den gleichen Port innerhalb dieses Lingerintervals wieder öffnen willst bekommst Du einen Fehler.)