Hallo liebes Autoit Team
Ich möchte ein Programm schreiben,das einen Server hat und einen Client.Wenn man den Server startet,wartet der auf einen benutzer(Client).Wenn ein Benutzer beigetreten ist,kann man vom Server aus eine Aufgabe schreiben(also z.b.was ist 1+1) die dann an den Client geschickt wird.Der Server wartet dann auf eine Antwort des Clients(Also auf das Ergebnis der Aufgabe).Wenn der Client dann das Ergebniss verschickt hat,gibt der Server eine MsgBox von sich aus wo dann das Ergebnis der Aufgabe drine steht.Wenn man dann auf "Ja" drückt ist die Aufgabe richtig und wenn auf "Nein" dann nicht.Das Ergebnis von der Aufgabe sowie der Eintrag ob das Ergebnis richtig war wird dann in eine Ini Datei geschrieben(optional.Ev gehts ja auch über TCPSend?).Das geht dann weiter bis zu 5 Aufgaben.Am Ende werden die Ergebnisse an den Client geschickt,der dann die Ergebnisse in einer MsgBox erhält.Das alles sollte ev über den TCP dienst von Autoit laufen.Ich habe den Script aus der Hilfe genommen,aber irgendwie blick ich da nicht durch warum ich mich nur einmal mit dem Server verbinden kann und wie ich das mit dem hin und herschicken mache.Schon einmal ein großes Danke an euch
TCP.Hilfe!
-
- [ offen ]
-
Gothic30381 -
5. Mai 2010 um 16:27 -
Geschlossen -
Erledigt
-
-
Anstatt so einen langen text wärs besser wenn du einfach deine Frage stellst
mit dem beispiel aus der hilfe kannst du nur 1 zu 1 connecten (soweit ich das in erinnerung hab)
du brauchst vom server mehrere tcp-verbindungen zu den einzelnen clients.d.h. warten bis sich jemand verbindet. am besten die verbindung in einem array abspeichern und um 1 höher zum nächsten index zählen.
gibt einige solche scripte hier im forum. such mal nach multi chat oder sowas in die richtung
-
Wenn du noch kein AutoIt beherschst, aber das Skript gerne hättest solltest du in der Jobbörse posten.
Zeig uns erstmal dein Skript das du moment verwendest. -
Hab da mal einen Chat gebastelt wo jeder Client und Server gleichzeitig ist...
vll hilft dir das weiter:
[autoit]#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit];IP, Port und Nick von Client
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$ip = "192.168.178.23"
$port = 3000
$nick = "";IP, Port und Nick von Server
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
$ip2 = "192.168.178.21"
$port2 = 3000
$nick2 = ""TCPStartUp ()
[/autoit][autoit][/autoit][autoit]
$server = TCPListen($ip,$port,1)$form = GUICreate("Chat", 625, 445, 192, 124)
[/autoit][autoit][/autoit][autoit]
$edit = GUICtrlCreateEdit("", 56, 16, 505, 265)
$input = GUICtrlCreateInput("", 64, 336, 401, 21)
$sender = GUICtrlCreateButton("Send", 488, 336, 97, 25, 0)
GUISetState(@SW_SHOW)
ControlClick("", "", $edit)
Send("Connection von " & $ip & " zu " & $ip2 & " wird aufgebaut...")While 1
[/autoit][autoit][/autoit][autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $sender
$client2 = TCPConnect ($ip2,$port2)
TCPSend ($client2, GUICtrlRead($input))
ControlClick ("","",$edit)
Send("[" & @HOUR & ":" & @MIN & ":" & @SEC & "] " & $nick & ": " & GUICtrlRead($input),1)
Send(" {Enter}",0)EndSwitch
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]$client = TCPAccept($server)
[/autoit][autoit][/autoit][autoit]
If $client >= 0 Then
Do
$message = TCPRecv($client,2048)
Until $message <> ""
ControlClick ("","",$edit)
Send("[" & @HOUR & ":" & @MIN & ":" & @SEC & "] " & $nick2 & ": " & $message,1)
Send(" {Enter}",0)
EndIf
WEndTCPShutdown()
[/autoit] -
stayawayknight schrieb
Hab da mal einen Chat gebastelt wo jeder Client und Server gleichzeitig ist...
Danke das kann ich gut gebrauchenPokerFace schrieb
Wenn du noch kein AutoIt beherschst, aber das Skript gerne hättest solltest du in der Jobbörse posten
Ich behersche schon Autoit.Doch mit TCP komm ich noch nicht zurecht und ja ich hätte es in die Jobbörse posten sollen.Fehler macht doch mal jederSchnitzel schrieb
Anstatt so einen langen text wärs besser wenn du einfach deine Frage stellst
Ja,aber so ist es ausführlicher