TCP und UDP

  • Hey Leute

    ich würde gerne TCP und UDP zusammen nutzen ich weis nur
    - 1. nich ob das überhaupt geht weil bei mir klappt das nicht
    - 2 wie es gehen würde
    das ganze brauche ich für einen Server für mein Spiel
    also:
    per UDP möchte ich gerne meine IP Broadcasten, damit diese nich manuell eingegeben werden muss
    und per TCP die anderen Sachen die der Server macht (nicht Broadcast)

    das ist was ich schon hab:

    Client
    [autoit]

    UDPStartup()
    $socket = UDPBind(@IPAddress1, 6112)
    If @error <> 0 Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $data = UDPRecv($socket, 1024)
    If $data <> "" Then
    MsgBox(0, $data, _IpToName($data),1)
    EndIf
    sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func OnAutoItExit()
    UDPCloseSocket($socket)
    UDPShutdown()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _IpToName($ip)
    $outread = "ERROR: Kann Programm NbtStat.exe nicht finden!"
    Ping($ip,50)
    If @error Then
    MsgBox(16,"Ping error","Die adresse "&$ip&" konnte nich gefunden werden, stellen Sie sicher das der Rechner online ist!")
    Exit
    EndIf
    $run = Run(@ComSpec&" /c nbtstat -a "&$ip, @SystemDir, @SW_HIDE, 6)
    Sleep(500)
    $stdoutread = StdoutRead($run)
    If Not @error = -1 Then $outread=$stdoutread

    [/autoit] [autoit][/autoit] [autoit]

    $stderrRead = StderrRead($run)
    If Not @error = -1 Then $outread = $stderrRead
    $ss = StringSplit($outread,@CRLF)
    If $ss[0] < 23 Then
    $outread = "(No Name Available)"
    Else
    $outread = $ss[23]
    $outread = StringReplace($outread,Chr(129),"ü")
    $outread = StringReplace($outread,Chr(154),"Ü")
    $outread = StringReplace($outread,Chr(142),"Ä")
    $outread = StringReplace($outread,Chr(132),"ä")
    $outread = StringReplace($outread,Chr(153),"Ö")
    $outread = StringReplace($outread,Chr(148),"ö")
    $outreadlen = StringLen(" LAN-Verbindung:Knoten-IP-Adresse: [] Bereichskennung: [] NetBIOS-Namentabelle des Remotecomputers Name Typ Status --------------------------------------------- ")+StringLen($ip)
    $outread = StringTrimLeft($outread,4)
    $outread = StringSplit($outread," ")
    $outread = $outread[1]
    $outread = StringReplace($outread," ","",0)
    EndIf
    Return $outread
    EndFunc

    [/autoit]
    Server
    [autoit]

    #include <Constants.au3>
    UDPStartup()
    $My_ips = StringSplit(@IPAddress1, '.')
    $Broadcast = $My_ips[1] & '.' & $My_ips[2] & '.' & $My_ips[3] & '.255'
    $socket = UDPOpen($Broadcast, 6112)
    If @error Then Exit MsgBox(0, "Error", "Error: UDPopen")
    UDPSend($socket, @IPAddress1)
    While 1
    UDPSend($socket, @IPAddress1)
    Sleep(5000)
    WEnd

    [/autoit]


    ich hoffe mal das es gehen würde :D

    Mfg Keyle