|
You last visited: Today at 18:48
Advertisement
### Autoit TCP Tool ###
Discussion on ### Autoit TCP Tool ### within the AutoIt forum part of the Coders Den category.
02/20/2013, 16:57
|
#1
|
elite*gold: 0
Join Date: Jan 2011
Posts: 637
Received Thanks: 382
|
### Autoit TCP Tool ###
Moin 
Ich soll für meinen Lehrer ein kleines TCP-Tool schreiben...
(Client/Server Prinzip)
Der Server soll halt die ganze Zeit auf kommandos lauschen und diese dann ,wenn definiert, umwandeln... Soweit bin ich auch schon
Der Client halt nur senden...
---------------------------------------------------
Jetzt die erste Frage:
Wie schaffe ich es dass ich MEHRERE Server steuern kann?
Also dass ich vom Client 1 Kommando sende aber JEDER lauschende Server dieses dann ausführt..?
Und die zweite Frage:
Ich will beim Client die verbundenen Server in einer Listenansicht (ListView) anzeigen lassen!
Wie realisiere ich das?
---------------------------------------------------
Derjenige der mir ein komplettes System mit nur ner "msgBox" funktion schreibt, kriegt 10€ psc / egold / überweisung.... dazu aber bitte pn schreiben... muss halt immer und stabil laufen...
|
|
|
02/20/2013, 20:51
|
#2
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Was erwartest du jetzt von uns?
Tuts & fertige Scripts findest du haufenweise bei - google
- autoit.de
- autoit Hilfedatei (die Beispiele)
- autoitscript.com

MfG
|
|
|
02/20/2013, 22:17
|
#3
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
du kannst eine einfache liste erstellen von verbundenen servern...
diese verbindungen würde ich per ping befehl absichern, um verlorene verbindungen autopmatisch heraus zu filtern.
sobald du alle verbindungen zb in einem array hast, kannst du diese doch einfach in einer schleife abarbeiten beim senden eines befehls...
edit:
aus langeweile hab ich dir hier mal ein kleines beispiel geschrieben:
Server:
Code:
TCPStartup()
Dim $port = 16000, $connection=-1, $listen = TCPListen('127.0.0.1', $port), $pingTimer, $pongTimer, $awaitPong = False
; If the current Port is allready in use, increment it, untill you find a Working one
While @error = 10048
$port += 1
$listen = TCPListen('127.0.0.1', $port)
WEnd
; Build a GUI, with a simple log,to Show Incoming Events
GUICreate('Server', 500, 200, Default, Default, 0x10C80000)
$log = GUICtrlCreateList('', 0, 0, 500, 205)
AddLog('Server is running on Port '&$port)
While GUIGetMsg()<>-3
; Handle Connection Requests (Only one Client at one Time)
If $connection < 0 Then
$connection = TCPAccept($listen)
If $connection>=0 Then AddLog('Client Conected!')
$pingTimer = TimerInit()
Else
#region Ping-Pong
If $awaitPong Then
If TimerDiff($pongTimer) >= 3000 Then
AddLog('Client connection timed out!')
TCPCloseSocket($connection)
$connection = -1
$awaitPong = False
EndIf
Else
If TimerDiff($pingTimer) >= 3000 Then
TCPSend($connection, 'Ping')
$pongTimer = TimerInit()
$awaitPong = True
EndIf
EndIf
#endregion
#region PacketHandling
$rcv = TCPRecv($connection, 1024)
Switch $rcv
Case ''
; Do Nothing
Case 'Pong'
$awaitPong = False
$pingTimer = TimerInit()
Case Else
AddLog($rcv)
EndSwitch
#endregion
EndIf
WEnd
TCPShutdown()
Func AddLog($msg)
GUICtrlSetData($log, @HOUR&':'&@MIN&':'&@SEC&':'&@MSEC&' - '&$msg)
EndFunc
Client:
Code:
; Build the "Server-Array" like this: [ServerNr][IP,Port,UNUSED,PongTimer,ServerListEntry,Socket]
Dim $serverArray[1][6] = [[0,0,0,-1,-1,-1]]
TCPStartup()
GUICreate('Client', 248, 195, Default, Default, 0x10CA0000)
GUICtrlCreateTab(0, 0, 250, 195)
; Build a simple option, to add a server to the "Server-Array"
GUICtrlCreateTabItem('Settings')
GUICtrlCreateGroup('Add Server', 10, 25, 230, 40)
$addServerIP = GUICtrlCreateInput('127.0.0.1', 15, 40, 100, 20)
GUICtrlCreateLabel(':', 115, 42, 10, 20, 1)
$addServerPort = GUICtrlCreateInput('16000', 125, 40, 50, 20)
$addServerButton = GUICtrlCreateButton('Add', 185, 40, 50, 22)
; Enable the user to delete any server from the "Server-Array"
GUICtrlCreateGroup('Delete Server', 10, 65, 230, 40)
$deleteServerCombo = GUICtrlCreateCombo('', 15, 80, 160, 20, 3)
$deleteServerButton = GUICtrlCreateButton('Delete', 185, 80, 50, 22)
; Enable the user to connect/disconnect to/from the servers
GUICtrlCreateGroup('Connect/Disconnect', 10, 105, 230, 87)
$connectServerCombo = GUICtrlCreateCombo('', 15, 120, 220, 20, 3)
$connectServerButton = GUICtrlCreateButton('Connect', 15, 145, 105, 20)
$disconnectServerButton = GUICtrlCreateButton('Disconnect', 130, 145, 105, 20)
$connectAllServersButton = GUICtrlCreateButton('Connect All', 15, 170, 105, 20)
$disconnectAllServersButton = GUICtrlCreateButton('Disconnect All', 130, 170, 105, 20)
; Create a tap to visualize the editable "Server-Array"
GUICtrlCreateTabItem('Server List')
$serverListView = GUICtrlCreateListView('Server|Port|Connected', 0, 22, 248, 173)
; Create an interface for the user to send custom packets
GUICtrlCreateTabItem('Send Packet')
$sendPacketCombo = GUICtrlCreateCombo('', 10, 30, 230, 20, 3)
GUICtrlCreateGroup('Packet', 10, 60, 230, 40)
$sendPacketInput = GUICtrlCreateInput('', 20, 75, 210, 20)
$sendToSelectedButton = GUICtrlCreateButton('Send to selected', 10, 105, 110, 20)
$sendToAllButton = GUICtrlCreateButton('Send to all', 130, 105, 110, 20)
; Create a Packet-Log for debugging purposes
GUICtrlCreateTabItem('Log')
$packetLog = GUICtrlCreateList('', 0, 22, 248, 175)
GUICtrlCreateTabItem("")
While True
; Handle GUI Inputs
Switch GUIGetMsg()
Case -3
TCPShutdown()
Exit
Case $addServerButton
AddServer()
Case $deleteServerButton
DeleteServer()
Case $connectServerButton
ConnectSingleServer()
Case $disconnectServerButton
DisconnectSingleServer()
Case $connectAllServersButton
ConnectAllServers()
Case $disconnectAllServersButton
DisconnectAllServers()
Case $sendToSelectedButton
SendToSelected()
Case $sendToAllButton
SendToAll()
EndSwitch
; Handle the "Server-Array"
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] >= 0 Then
; Check if there were no ping packets for 10 secs.... if so tell the user and DC
If TimerDiff($serverArray[$i][3])>10000 Then
TrayTip('Info', 'Lost the connection to '&$serverArray[$i][0]&':'&$serverArray[$i][1], 5)
$serverArray[$i][5] = -1
GUICtrlSetData($serverArray[$i][4], '||NO')
EndIf
; Handle recieved packets
$rcv = TCPRecv($serverArray[$i][5], 1024)
If $rcv<>'' And $rcv<>'Ping' Then AddLog('['&$serverArray[$i][0]&':'&$serverArray[$i][1]&'->C] '&$rcv)
Switch $rcv
Case ''
Case 'Ping'
$serverArray[$i][3] = TimerInit()
TCPSend($serverArray[$i][5], 'Pong')
EndSwitch
EndIf
Next
WEnd
Func AddServer()
Local $freeSlot = -1, $uBound = UBound($serverArray), $ip=GUICtrlRead($addServerIP), $port=GUICtrlRead($addServerPort), $skip = False
For $i=0 To $uBound-1
If $serverArray[$i][0]=$ip And $serverArray[$i][1]=$port Then
$skip=True
ExitLoop
ElseIf $serverArray[$i][0] = 0 Then
$freeSlot=$i
EndIf
Next
If Not $skip Then
If $freeSlot = -1 Then
ReDim $serverArray[$uBound+1][6]
$serverArray[$uBound][0] = $ip
$serverArray[$uBound][1] = $port
$serverArray[$uBound][2] = 0
$serverArray[$uBound][3] = -1
$serverArray[$uBound][4] = GUICtrlCreateListViewItem($serverArray[$uBound][0]&'|'&$serverArray[$uBound][1]&'|NO', $serverListView)
$serverArray[$uBound][5] = -1
GUICtrlSetData($connectServerCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
Else
$serverArray[$freeSlot][0] = $ip
$serverArray[$freeSlot][1] = $port
$serverArray[$freeSlot][2] = 0
$serverArray[$freeSlot][3] = -1
$serverArray[$freeSlot][4] = GUICtrlCreateListViewItem($serverArray[$freeSlot][0]&'|'&$serverArray[$freeSlot][1]&'|NO', $serverListView)
$serverArray[$freeSlot][5] = -1
GUICtrlSetData($connectServerCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
EndIf
Else
MsgBox(0, 'Info', 'That server is allready in your server list!')
EndIf
EndFunc
Func DeleteServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($deleteServerCombo), ':'), $uBound = UBound($serverArray)-1
For $i=0 To $uBound
If $serverArray[$i][0] = $adress[1] And $serverArray[$i][1] = $adress[2] Then
$index = $i
ExitLoop
EndIf
Next
If $index =-1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
$serverArray[$index][0]=0
GUICtrlDelete($serverArray[$index][4])
GUICtrlSetData($connectServerCombo, "")
GUICtrlSetData($deleteServerCombo, "")
GUICtrlSetData($sendPacketCombo, "")
For $i=0 To $uBound
If $serverArray[$i][0]<>0 Then
GUICtrlSetData($connectServerCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
EndIf
Next
EndIf
EndFunc
Func ConnectSingleServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($connectServerCombo), ':')
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
$serverArray[$index][5] = TCPConnect($adress[1], $adress[2])
If @error Then
MsgBox(0, 'Error', 'An error occured during the connecting procress ('&@error&')')
Else
GUICtrlSetData($serverArray[$index][4], '||YES')
$serverArray[$index][3] = TimerInit()
EndIf
EndIf
EndFunc
Func DisconnectSingleServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($connectServerCombo), ':')
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Problem Issue!)')
Else
TCPCloseSocket($serverArray[$index][5])
$serverArray[$index][5] = -1
GUICtrlSetData($serverArray[$index][4], '||NO')
EndIf
EndFunc
Func ConnectAllServers()
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] <= 0 Then
$serverArray[$i][5] = TCPConnect($serverArray[$i][0], $serverArray[$i][1])
If @error Then
MsgBox(0, 'Error', 'An error occured during the connecting procress ('&@error&')')
Else
GUICtrlSetData($serverArray[$i][4], '||YES')
$serverArray[$i][3] = TimerInit()
EndIf
EndIf
Next
EndFunc
Func DisconnectAllServers()
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] > 0 Then
TCPCloseSocket($serverArray[$i][5])
$serverArray[$i][5] = -1
GUICtrlSetData($serverArray[$i][4], '||NO')
EndIf
Next
EndFunc
Func SendToSelected()
Local $index = -1, $adress = StringSplit(GUICtrlRead($sendPacketCombo), ':'), $inputContent = GUICtrlRead($sendPacketInput)
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
TCPSend($serverArray[$index][5], $inputContent)
AddLog('[C->'&$serverArray[$index][0]&':'&$serverArray[$index][1]&'] '&$inputContent)
EndIf
EndFunc
Func SendToAll()
Local $inputContent = GUICtrlRead($sendPacketInput)
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]<>0 And $serverArray[$i][5] > 0 Then
TCPSend($serverArray[$i][5], $inputContent)
AddLog('[C->'&$serverArray[$i][0]&':'&$serverArray[$i][1]&'] '&$inputContent)
EndIf
Next
EndFunc
Func AddLog($msg)
GUICtrlSetData($packetLog, @HOUR&':'&@MIN&':'&@SEC&':'&@MSEC&' - '&$msg)
EndFunc
hab beim client erst etwas spät bemerkt das einer der in $serverArray vorher angedachten plätze sinnfrei ist... nun ist $serverArray[<x>][2] komplett überflüssig...
das sollte natürlich komplett aus dem array entfernt werden, um ressourcen zu sparen, habe ich nun aber aus faulheit nichtmehr gemacht.
|
|
|
02/22/2013, 06:53
|
#4
|
elite*gold: 0
Join Date: Jan 2011
Posts: 637
Received Thanks: 382
|
Quote:
Originally Posted by lolkop
du kannst eine einfache liste erstellen von verbundenen servern...
diese verbindungen würde ich per ping befehl absichern, um verlorene verbindungen autopmatisch heraus zu filtern.
sobald du alle verbindungen zb in einem array hast, kannst du diese doch einfach in einer schleife abarbeiten beim senden eines befehls...
edit:
aus langeweile hab ich dir hier mal ein kleines beispiel geschrieben:
Server:
Code:
TCPStartup()
Dim $port = 16000, $connection=-1, $listen = TCPListen('127.0.0.1', $port), $pingTimer, $pongTimer, $awaitPong = False
; If the current Port is allready in use, increment it, untill you find a Working one
While @error = 10048
$port += 1
$listen = TCPListen('127.0.0.1', $port)
WEnd
; Build a GUI, with a simple log,to Show Incoming Events
GUICreate('Server', 500, 200, Default, Default, 0x10C80000)
$log = GUICtrlCreateList('', 0, 0, 500, 205)
AddLog('Server is running on Port '&$port)
While GUIGetMsg()<>-3
; Handle Connection Requests (Only one Client at one Time)
If $connection < 0 Then
$connection = TCPAccept($listen)
If $connection>=0 Then AddLog('Client Conected!')
$pingTimer = TimerInit()
Else
#region Ping-Pong
If $awaitPong Then
If TimerDiff($pongTimer) >= 3000 Then
AddLog('Client connection timed out!')
TCPCloseSocket($connection)
$connection = -1
$awaitPong = False
EndIf
Else
If TimerDiff($pingTimer) >= 3000 Then
TCPSend($connection, 'Ping')
$pongTimer = TimerInit()
$awaitPong = True
EndIf
EndIf
#endregion
#region PacketHandling
$rcv = TCPRecv($connection, 1024)
Switch $rcv
Case ''
; Do Nothing
Case 'Pong'
$awaitPong = False
$pingTimer = TimerInit()
Case Else
AddLog($rcv)
EndSwitch
#endregion
EndIf
WEnd
TCPShutdown()
Func AddLog($msg)
GUICtrlSetData($log, @HOUR&':'&@MIN&':'&@SEC&':'&@MSEC&' - '&$msg)
EndFunc
Client:
Code:
; Build the "Server-Array" like this: [ServerNr][IP,Port,UNUSED,PongTimer,ServerListEntry,Socket]
Dim $serverArray[1][6] = [[0,0,0,-1,-1,-1]]
TCPStartup()
GUICreate('Client', 248, 195, Default, Default, 0x10CA0000)
GUICtrlCreateTab(0, 0, 250, 195)
; Build a simple option, to add a server to the "Server-Array"
GUICtrlCreateTabItem('Settings')
GUICtrlCreateGroup('Add Server', 10, 25, 230, 40)
$addServerIP = GUICtrlCreateInput('127.0.0.1', 15, 40, 100, 20)
GUICtrlCreateLabel(':', 115, 42, 10, 20, 1)
$addServerPort = GUICtrlCreateInput('16000', 125, 40, 50, 20)
$addServerButton = GUICtrlCreateButton('Add', 185, 40, 50, 22)
; Enable the user to delete any server from the "Server-Array"
GUICtrlCreateGroup('Delete Server', 10, 65, 230, 40)
$deleteServerCombo = GUICtrlCreateCombo('', 15, 80, 160, 20, 3)
$deleteServerButton = GUICtrlCreateButton('Delete', 185, 80, 50, 22)
; Enable the user to connect/disconnect to/from the servers
GUICtrlCreateGroup('Connect/Disconnect', 10, 105, 230, 87)
$connectServerCombo = GUICtrlCreateCombo('', 15, 120, 220, 20, 3)
$connectServerButton = GUICtrlCreateButton('Connect', 15, 145, 105, 20)
$disconnectServerButton = GUICtrlCreateButton('Disconnect', 130, 145, 105, 20)
$connectAllServersButton = GUICtrlCreateButton('Connect All', 15, 170, 105, 20)
$disconnectAllServersButton = GUICtrlCreateButton('Disconnect All', 130, 170, 105, 20)
; Create a tap to visualize the editable "Server-Array"
GUICtrlCreateTabItem('Server List')
$serverListView = GUICtrlCreateListView('Server|Port|Connected', 0, 22, 248, 173)
; Create an interface for the user to send custom packets
GUICtrlCreateTabItem('Send Packet')
$sendPacketCombo = GUICtrlCreateCombo('', 10, 30, 230, 20, 3)
GUICtrlCreateGroup('Packet', 10, 60, 230, 40)
$sendPacketInput = GUICtrlCreateInput('', 20, 75, 210, 20)
$sendToSelectedButton = GUICtrlCreateButton('Send to selected', 10, 105, 110, 20)
$sendToAllButton = GUICtrlCreateButton('Send to all', 130, 105, 110, 20)
; Create a Packet-Log for debugging purposes
GUICtrlCreateTabItem('Log')
$packetLog = GUICtrlCreateList('', 0, 22, 248, 175)
GUICtrlCreateTabItem("")
While True
; Handle GUI Inputs
Switch GUIGetMsg()
Case -3
TCPShutdown()
Exit
Case $addServerButton
AddServer()
Case $deleteServerButton
DeleteServer()
Case $connectServerButton
ConnectSingleServer()
Case $disconnectServerButton
DisconnectSingleServer()
Case $connectAllServersButton
ConnectAllServers()
Case $disconnectAllServersButton
DisconnectAllServers()
Case $sendToSelectedButton
SendToSelected()
Case $sendToAllButton
SendToAll()
EndSwitch
; Handle the "Server-Array"
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] >= 0 Then
; Check if there were no ping packets for 10 secs.... if so tell the user and DC
If TimerDiff($serverArray[$i][3])>10000 Then
TrayTip('Info', 'Lost the connection to '&$serverArray[$i][0]&':'&$serverArray[$i][1], 5)
$serverArray[$i][5] = -1
GUICtrlSetData($serverArray[$i][4], '||NO')
EndIf
; Handle recieved packets
$rcv = TCPRecv($serverArray[$i][5], 1024)
If $rcv<>'' And $rcv<>'Ping' Then AddLog('['&$serverArray[$i][0]&':'&$serverArray[$i][1]&'->C] '&$rcv)
Switch $rcv
Case ''
Case 'Ping'
$serverArray[$i][3] = TimerInit()
TCPSend($serverArray[$i][5], 'Pong')
EndSwitch
EndIf
Next
WEnd
Func AddServer()
Local $freeSlot = -1, $uBound = UBound($serverArray), $ip=GUICtrlRead($addServerIP), $port=GUICtrlRead($addServerPort), $skip = False
For $i=0 To $uBound-1
If $serverArray[$i][0]=$ip And $serverArray[$i][1]=$port Then
$skip=True
ExitLoop
ElseIf $serverArray[$i][0] = 0 Then
$freeSlot=$i
EndIf
Next
If Not $skip Then
If $freeSlot = -1 Then
ReDim $serverArray[$uBound+1][6]
$serverArray[$uBound][0] = $ip
$serverArray[$uBound][1] = $port
$serverArray[$uBound][2] = 0
$serverArray[$uBound][3] = -1
$serverArray[$uBound][4] = GUICtrlCreateListViewItem($serverArray[$uBound][0]&'|'&$serverArray[$uBound][1]&'|NO', $serverListView)
$serverArray[$uBound][5] = -1
GUICtrlSetData($connectServerCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$uBound][0]&':'&$serverArray[$uBound][1], $serverArray[$uBound][0]&':'&$serverArray[$uBound][1])
Else
$serverArray[$freeSlot][0] = $ip
$serverArray[$freeSlot][1] = $port
$serverArray[$freeSlot][2] = 0
$serverArray[$freeSlot][3] = -1
$serverArray[$freeSlot][4] = GUICtrlCreateListViewItem($serverArray[$freeSlot][0]&'|'&$serverArray[$freeSlot][1]&'|NO', $serverListView)
$serverArray[$freeSlot][5] = -1
GUICtrlSetData($connectServerCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1], $serverArray[$freeSlot][0]&':'&$serverArray[$freeSlot][1])
EndIf
Else
MsgBox(0, 'Info', 'That server is allready in your server list!')
EndIf
EndFunc
Func DeleteServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($deleteServerCombo), ':'), $uBound = UBound($serverArray)-1
For $i=0 To $uBound
If $serverArray[$i][0] = $adress[1] And $serverArray[$i][1] = $adress[2] Then
$index = $i
ExitLoop
EndIf
Next
If $index =-1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
$serverArray[$index][0]=0
GUICtrlDelete($serverArray[$index][4])
GUICtrlSetData($connectServerCombo, "")
GUICtrlSetData($deleteServerCombo, "")
GUICtrlSetData($sendPacketCombo, "")
For $i=0 To $uBound
If $serverArray[$i][0]<>0 Then
GUICtrlSetData($connectServerCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
GUICtrlSetData($deleteServerCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
GUICtrlSetData($sendPacketCombo, $serverArray[$i][0]&':'&$serverArray[$i][1], $serverArray[$i][0]&':'&$serverArray[$i][1])
EndIf
Next
EndIf
EndFunc
Func ConnectSingleServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($connectServerCombo), ':')
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
$serverArray[$index][5] = TCPConnect($adress[1], $adress[2])
If @error Then
MsgBox(0, 'Error', 'An error occured during the connecting procress ('&@error&')')
Else
GUICtrlSetData($serverArray[$index][4], '||YES')
$serverArray[$index][3] = TimerInit()
EndIf
EndIf
EndFunc
Func DisconnectSingleServer()
Local $index = -1, $adress = StringSplit(GUICtrlRead($connectServerCombo), ':')
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Problem Issue!)')
Else
TCPCloseSocket($serverArray[$index][5])
$serverArray[$index][5] = -1
GUICtrlSetData($serverArray[$index][4], '||NO')
EndIf
EndFunc
Func ConnectAllServers()
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] <= 0 Then
$serverArray[$i][5] = TCPConnect($serverArray[$i][0], $serverArray[$i][1])
If @error Then
MsgBox(0, 'Error', 'An error occured during the connecting procress ('&@error&')')
Else
GUICtrlSetData($serverArray[$i][4], '||YES')
$serverArray[$i][3] = TimerInit()
EndIf
EndIf
Next
EndFunc
Func DisconnectAllServers()
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0] <> 0 And $serverArray[$i][5] > 0 Then
TCPCloseSocket($serverArray[$i][5])
$serverArray[$i][5] = -1
GUICtrlSetData($serverArray[$i][4], '||NO')
EndIf
Next
EndFunc
Func SendToSelected()
Local $index = -1, $adress = StringSplit(GUICtrlRead($sendPacketCombo), ':'), $inputContent = GUICtrlRead($sendPacketInput)
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]=$adress[1] And $serverArray[$i][1]=$adress[2] Then
$index=$i
ExitLoop
EndIf
Next
If $index = -1 Then
MsgBox(0, 'Info', 'That server was not found in server list (Program Issue!)')
Else
TCPSend($serverArray[$index][5], $inputContent)
AddLog('[C->'&$serverArray[$index][0]&':'&$serverArray[$index][1]&'] '&$inputContent)
EndIf
EndFunc
Func SendToAll()
Local $inputContent = GUICtrlRead($sendPacketInput)
For $i=0 To UBound($serverArray)-1
If $serverArray[$i][0]<>0 And $serverArray[$i][5] > 0 Then
TCPSend($serverArray[$i][5], $inputContent)
AddLog('[C->'&$serverArray[$i][0]&':'&$serverArray[$i][1]&'] '&$inputContent)
EndIf
Next
EndFunc
Func AddLog($msg)
GUICtrlSetData($packetLog, @HOUR&':'&@MIN&':'&@SEC&':'&@MSEC&' - '&$msg)
EndFunc
hab beim client erst etwas spät bemerkt das einer der in $serverArray vorher angedachten plätze sinnfrei ist... nun ist $serverArray[<x>][2] komplett überflüssig...
das sollte natürlich komplett aus dem array entfernt werden, um ressourcen zu sparen, habe ich nun aber aus faulheit nichtmehr gemacht.
|
Hey!
vielen vielen lieben dank!!!!!!!!
ich werds mir mal am we genauer angucken!
wenns so läuft kriegste wenn du willst ne 10er psc <3
|
|
|
All times are GMT +1. The time now is 18:49.
|
|