Frage zu TCP

  • @All

    Ich schreibe z.Zt. ein kleines Netzwerktool. Der Client wird als Dienst auf den Netzwerkrechner installiert und kann schon eingehende Daten verarbeiten. Mein Problem ist aber das ich den Server nicht immer am selben Rechner starte und sich somit auch IPAdresse ändert. Nun habe ich folgende Funktion geschrieben, die natürlich unendlich langsam ist.

    Spoiler anzeigen
    [autoit]

    Func _TCP_Connection()Opt('TCPTimeout', 10)Local Static $iMainSocket = -1If $iMainSocket <> -1 THen Return $iMainSocketTCPStartup()While $iMainSocket = -1For $i = 1 To 254$ip = StringLeft(@IPAddress1, StringInStr(@IPAddress1, '.', 0, -1)) & $iPing($ip, 2)If @error = 0 Then$iMainSocket = TCPConnect($ip, 29614)ConsoleWrite($Ip & ' ' &$iMainSocket & @crlf)If $iMainSocket <> -1 ThenConsoleWrite('!Verbindung hergestellt: ' & $ip & ';' & $iMainSocket & @crlf)ExitLoopEndIfEndIfNextWEndEndFunc ;==>_TCP_Connection

    [/autoit]


    Wie kann ich aber den Verbindungsaufbau zum Server beschleunigen? Ich habe schon viele Beiträge zu TCP und AutoIt gelesen. Aber hier wird immer die IPAdresse des Servers statisch im Quelltext beim Clienten geschrieben oder mittels Ini-Dateien ausgelesen.

    Danke für Eure Bemühungen!

    Einmal editiert, zuletzt von ineedhelp (28. Oktober 2010 um 15:16)

  • Wozu gibt es eigentlich die Broadcast-Adresse? Ich werde den Server veranlassen, seine IP in regelmäßigen Abständen an die Broadcast-Adresse zu senden. Hier können die Clients fündig werden, und sich dann mit dem Server verbinden. Das wird wohl der performanste Weg sein. Ich werde es morgen gleich im Netzwerk testen. :D