Wenn man eine Art Serversuchfunktion macht, und tcpconnect in einer while schlfleife versuchen lsst verschiedene ip's zu connecten, geht das immer so lang wenn kein server auf der ip und dem port existiert.
Kann man das irgendwie mindern ? Also timeout dauer senken ? Mit opt("TCPTimeout") geht das nich ....
Hoffe auf schnelle Antwort
Hier der Source Code für die "Suche":
Spoiler anzeigen
#include <ListViewConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiIpAddress.au3>
func join()
GUIDelete()
GUIDelete()
$Form1_1 = GUICreate("Spiel beitreten", 370, 249, 340, 151)
$Label1 = GUICtrlCreateLabel("Server- IP:", 16, 24, 54, 17)
$Button1 = GUICtrlCreateButton("Verbinden", 224, 24, 75, 25, $WS_GROUP)
$IPAddress1 = _GUICtrlIpAddress_Create($Form1_1, 80, 24, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, "0.0.0.0")
$ListView1 = GUICtrlCreateListView("Name|Server- IP", 16, 64, 306, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150)
$Label2 = GUICtrlCreateLabel("Suche Server:192.168.1.1", 16, 224, 340, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$ip4=1
$ip3=1
$anz=0
dim $item[99]
for $i=0 to 98
$item[$i]=-1
next
dim $done[256]
$local=0
While 1
$ip4+=1
if $ip4>255 Then
$ip4=1
;~ $ip3+=1
;~ if $ip3>255 then $ip3=1
;=================================> Search for more Lan- IP's (192.168.XXX.XXX(without this option 192.168.1.XXX)) . Slows the Server- Search
;~ $socket=TCPConnect(@IPAddress1,27000)
;~ if $socket<>-1 Then
;~ $rec=TCPRecv($socket,100)
;~ if $local<> 1 then
;~ $item[$anz]=GUICtrlCreateListViewItem($rec&"|"&"127.0.0.1",$ListView1)
;~ $anz+=1
;~ $local=1
;~ EndIf
;~ EndIf
;=================================> localhost Serverhosting. Might slow or crash the Server- Search
EndIf
guictrlsetdata($label2,"Suche Server: 192.168."&$ip3&"."&$ip4)
$socket=TCPConnect("192.168."&$ip3&"."&$ip4,27000)
if $socket<>-1 Then
$rec=TCPRecv($socket,500)
if $done[$ip4]<>1 then
$item[$anz]=GUICtrlCreateListViewItem($rec&"|"&"192.168."&$ip3&"."&$ip4,$ListView1)
$anz+=1
$done[$ip4]=1
EndIf
EndIf
$nMsg = GUIGetMsg()
if $anz>0 then
for $i=0 to $anz
if $nmsg=$item[$i] then
$ip=StringSplit(guictrlread($item[$i]),"|")
_guictrlipaddress_set($IPAddress1,$ip[2])
EndIf
next
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
$conn=TCPConnect(_GUICtrlIpAddress_Get($ipaddress1),27000)
[/autoit] [autoit][/autoit] [autoit]$rec=TCPRecv($conn,500)
if $rec="" then
msgbox(64,"Fehler","Es konnte keine Verbindung hergestellt werden")
Else
$answer=msgbox(33,"Verbinden","Verbinden zu "&$rec&@crlf&"Fortsetzen?")
if $answer=1 then
$conn=TCPConnect(_GUICtrlIpAddress_Get($ipaddress1),27000)
$rec=TCPRecv($conn,500)
if $rec="" then
msgbox(64,"Fehler","Es konnte keine Verbindung hergestellt werden")
Else
tcpsend($conn,"connect")
ExitLoop
EndIf
EndIf
EndIf
EndSwitch
WEnd
EndFunc