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
UDPStartup()
$socket = UDPBind(@IPAddress1, 6112)
If @error <> 0 Then Exit
While 1
$data = UDPRecv($socket, 1024)
If $data <> "" Then
MsgBox(0, $data, _IpToName($data),1)
EndIf
sleep(100)
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
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
$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
Server
#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
ich hoffe mal das es gehen würde
Mfg Keyle