Hi ho ihr Au3 Scripter = )
ich hab mich mal daran gemacht n TCP/IP Chat zu schreiben
ist mir auch relativ gut gelungen
das einzige Problem das ich habe ist das
manchmal nur ein Leerer string ankommt wenn ich
per TCP einen Text sende kann da jemand vielleicht einen Fehler erkennen?
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#include <String.au3>
#RequireAdmin
;~ ---------------------------------------------------
;~ TCP/IP Chat Client
;~ Autor xNeoX
;~ ------------------------------------------------------
_FileCreate ("C:\Programme\logfile.txt")
dim $mainsocket = -1
dim $ipadresse = @IPAddress1
MsgBox (0,"IP - Adresse",$ipadresse)
TCPStartup()
$MainSocket = TCPListen($ipadresse, 9300)
If $MainSocket = -1 Then Exit
$myname = InputBox ("Name","Namen eintragen","Name")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("ChatWindow", 341, 425, 193, 151)
$IP = GUICtrlCreateInput("192.168.131.66", 8, 16, 121, 21)
$Port = GUICtrlCreateInput("9300", 184, 16, 121, 21)
$Ausgaben = GUICtrlCreateEdit("", 10, 65, 320, 199,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "")
$Input = GUICtrlCreateEdit("", 10, 282, 320,135,0,$BS_DEFPUSHBUTTON)
GUICtrlSetData(-1, "")
$Send = GUICtrlCreateButton("Send", 1, 1, 1, 1,$BS_DEFPUSHBUTTON)
Controlfocus ("ChatWindow","","Edit4")
while 1
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$time =@hour&":"&@MIN
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$nMsg1 = GUIGetMsg()
Select
Case $nmsg1 = $GUI_EVENT_CLOSE
Exit
case $nmsg1 = $send
dim $ipadresse = @IPAddress1
$ausgabe = _stringencrypt(1,$time&" ("&$ipadresse&") "&$myname&" sagt: "&GUICtrlRead($Input) ,"Swordfish",1)
sleep (99)
$ausgabeclean = $time&" ("&$ipadresse&") "&$myname&" sagt: "&GUICtrlRead($Input)
$ipadresse = GUICtrlRead($IP)
$port2 = GUICtrlRead($Port)
TCPStartup()
$mainsocket1 = TCPConnect($Ipadresse,$Port2)
If $mainsocket1 <= 0 Then
MsgBox (0,"Fehler","Ip hat keinen Chat geöffnet")
else
FileOpen ("C:\Programme\logfile.txt",1)
FileWrite ("C:\Programme\logfile.txt",$ausgabeclean )
FileWriteLine ("C:\Programme\logfile.txt","")
fileclose ("C:\Programme\logfile.txt")
ControlSend($Form1, '', $Ausgaben, '{RIGHT}') ; damit der Eingabecursor am Ende des alten Textes steht
Guictrlsetdata($Ausgaben,"") ;zum leeren des Fensters
Guictrlsetdata($Ausgaben, FileRead("C:\Programme\logfile.txt"), 1) ; hier ",1" am Ende
tcpsend($mainsocket1, $ausgabe)
Guictrlsetdata ($Input,"")
Controlfocus ("ChatWindow","","Edit4")
endif
EndSelect
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket >= 0 Then
$recv = TCPRecv($connectedsocket, 2048)
$decr = _stringencrypt(0,$recv,"Swordfish",1)
FileOpen ("C:\Programme\logfile.txt",1)
FileWrite ("C:\Programme\logfile.txt",$decr )
FileWriteLine ("C:\Programme\logfile.txt","")
fileclose ("C:\Programme\logfile.txt")
ControlSend($Form1, '', $Ausgaben, '{RIGHT}') ; damit der Eingabecursor am Ende des alten Textes steht
Guictrlsetdata($Ausgaben,"") ; zum leeren des Fensters
Guictrlsetdata($Ausgaben, FileRead("C:\Programme\logfile.txt"), 1) ; hier ",1" am Ende
fileclose ("C:\Programme\logfile.txt")
if WinActive ("ChatWindow") Then
Else
WinActivate ("ChatWindow")
Controlfocus ("ChatWindow","","Edit4")
endif
endif
WEnd