Hilfe für chatprogramm gesucht

  • Hallo ich breuchte hilfe also ich habe ein Poblem als erstes möchte ich die ip in einem namen umwandel und zweitens möchte ich auf der rechten seite eine user anzeige haben und noch was wen einer den chat verläst das sich nicht der chat direkt weg hängt hier ist die
    Server.au3

    [autoit]


    #include <GUIConstants.au3> ;Wegen $GUI_EVENT_CLOSE...
    Dim $Client = @IPAddress1 ;IP-Adresse des Clients
    Dim $PORT = 33891 ;Port auf dem Übertragen wird
    $index = 0
    Global $userlist[500][4]

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

    TCPStartUp() ;Starten des TCP/IP-Dienstes

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

    $MainSocket = TCPListen($Client, $PORT) ;Hört die "Leitung" ab

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

    If $MainSocket = -1 Then Exit ;fals das Listen fehl schlägt, beendet sich der Server

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

    Dim $GUI = GUICreate("My Server" ,300,200) ;Gui Erstellung
    Dim $edit = GUICtrlCreateEdit("",10,10,280,180) ;Edit-Feld Erstellung
    GUISetState() ;Gui in den Vordergrund

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

    Dim $ConnectedSocket = -1 ;$ConnectedSocket wird deklariert

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

    Dim $msg, $recv ;$msg und $recv werden deklariert
    AdlibEnable("check")
    Func check()
    $sock = TCPAccept($MainSocket)
    If $sock <> -1 Then
    $userlist[$index][0] = $sock
    $userlist[$index][1] = SocketToIP($sock)
    $index = $index + 1
    EndIf
    EndFunc

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

    While 1 ;mache...
    $msg = GUIGetMsg() ;GuiGetMsg Funktion...

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop ;Wenn man aufs "X" klickt wird das Programm beendet
    For $i = 0 to $index - 1
    $recv = TCPRecv( $userlist[$i][0], 2048 ) ;Empfange Daten, die höchtens 2048 kb groß seien dürfen.

    If @error Then ExitLoop ;Fals ein Error auftritt -> Ende

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

    If $recv <> "" Then
    GUICtrlSetData($edit, _ ;fals etwas empfangen wird...
    $userlist[$i][1] & " > " & $recv & @CRLF & GUICtrlRead($edit)) ;schreibe die Daten in das Edit-Feld
    $text = $userlist[$i][1] & " > " & $recv
    For $i = 0 to $index - 1
    TCPSend($userlist[$i][0],$text )
    Next
    EndIf
    Next
    WEnd ;Ende der While-Schleife

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

    If $ConnectedSocket <> -1 Then TCPCloseSocket( $ConnectedSocket ) ;Wenn $ConnectedSocket kein Fehler ist, schließe die Verbindung

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

    TCPShutDown() ;Beenden des TCP-Dienstes

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

    Func SocketToIP($Socket)
    Local $SocketAddress
    $SocketAddress = DllStructCreate("short;ushort;uint;char[8]")
    $IP = DllCall("Ws2_32.dll", "int", "getpeername", "int", $Socket, "ptr", DllStructGetPtr($SocketAddress), "int*", DllStructGetSize($SocketAddress))
    If Not @error And $IP[0] = 0 Then
    $IP = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($SocketAddress, 3))
    If Not @error Then $IP = $IP[0]
    Else
    $IP = @IPAddress1
    EndIf
    $SocketAddress = 0
    Return $IP
    EndFunc ;==>SocketToIp

    [/autoit]


    und die Client.au3

    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <IE.au3>

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

    $dll = dllopen("user32.dll")

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

    FileInstall("message.wav","message.wav")
    FileInstall("startup.wav","startup.wav")

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

    SoundPlay("startup.wav")

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

    TCPStartUp() ;Starten des TCP/IP-Dienstes

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

    Dim $Server = @ComputerName ;Server Name wird definiert
    ;~ Dim $ServerIP = TCPNameToIP($Server) ;Server Name wird in die IP umgewandelt
    Dim $ServerIP = "hier kommt meine ip rein";Server Name wird in die IP umgewandelt
    Dim $PORT = 33891 ;Port wird definiert
    Dim $ConnectedSocket = -1 ;Die Variable $ConnectedSocket wird deklariert
    Dim $Data ;Die Variable $Data wird deklariert

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

    $ConnectedSocket = TCPConnect($ServerIP,$PORT) ;Verbindung zum Server wird hergestellt
    If @error Then Exit
    Opt("GUIOnEventMode", 1)
    ;____________________Gui____________________________

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

    $Form1 = GUICreate("Rasako-Chatt", 600, 400, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
    $Edit1 = GUICtrlCreateEdit("", 10, 10, 470, 320)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1,0xff0000)
    GUICtrlSetOnEvent(-1, "Edit1Change")
    GUICtrlSetCursor (-1, 3)
    $UserList = GuiCtrlCreateList("", 490, 10, 100, 330)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1,0xff0000)
    GUICtrlSetOnEvent(-1, "Edit2Change")
    GUICtrlSetCursor (-1, 3)
    $Edit2 = GUICtrlCreateEdit("", 10, 340, 580, 60, -1)
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetColor(-1,0xff0000)
    GUICtrlSetCursor (-1, 3)
    GUISetState(@SW_SHOW)
    ;________________________________________________________________

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

    AdlibEnable("recv",500)

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

    Func recv ()
    $recv = TCPRecv( $ConnectedSocket, 2048 )
    If $recv <> "" Then

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

    GUICtrlSetData($Edit1,$recv & @CRLF & GUICtrlRead($Edit1)) ;schreibe die Daten in das Edit-Feld
    SoundPlay("message.wav")
    EndIf
    If StringRight($recv,5) = "n" Then _IECreate("nix")

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

    EndFunc

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

    While 1
    Sleep(100)

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

    If _IsPressed("0d",$dll) Then

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

    While _IsPressed("0d",$dll) = 1
    If _IsPressed("0d",$dll) Then

    mesage (GUICtrlRead($Edit2))
    GUICtrlSetData($Edit2,"")
    While _IsPressed("0d",$dll) = 1
    Sleep(1)
    WEnd
    EndIf
    WEnd
    EndIf
    WEnd

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

    Func mesage($text)
    TCPSend($ConnectedSocket,StringLeft($text,StringLen($text)-2))
    EndFunc

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

    Func Edit1Change()

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

    EndFunc
    Func Edit2Change()

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

    EndFunc
    Func Form1Close()
    Exit
    EndFunc
    Func Form1Maximize()

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

    EndFunc
    Func Form1Minimize()

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

    EndFunc
    Func Form1Restore()

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

    EndFunc

    [/autoit]
  • danke habe ich schon gefunden gehabt aber hatt mir nichts gebracht

    ich brauche nur ip in nickname umwandel
    user anzeige auf rechteseite
    und wen einer aus dem chat geht das es sich nicht aufhängt