TCP/IP Chat

  • 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
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>
    #include <String.au3>
    #RequireAdmin

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ---------------------------------------------------
    ;~ TCP/IP Chat Client
    ;~ Autor xNeoX
    ;~ ------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]


    _FileCreate ("C:\Programme\logfile.txt")
    dim $mainsocket = -1
    dim $ipadresse = @IPAddress1
    MsgBox (0,"IP - Adresse",$ipadresse)
    TCPStartup()

    [/autoit] [autoit][/autoit] [autoit]

    $MainSocket = TCPListen($ipadresse, 9300)
    If $MainSocket = -1 Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $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 ###

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit]

    Einmal editiert, zuletzt von XNeoX (20. April 2009 um 13:38)