Hab mich mal an nem Chat versucht..
How To?
Server:
- Der Server tippt ein "Listen" und die IP-Adresse des Clients...
Client:
- Der Client tippt ein "Connect" und die IP-Adresse des Servers...
Port ändern:
"Port" eintippen und den gewünschten Port eintippen
IP-Adresse bekommen:
"My Adress" eintippen und die IP-Adresse wird angezeigt
Is mein erster Chat...
Hier das Ergebnis:
Spoiler anzeigen
#NoTrayIcon
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
HotKeySet("{ESC}", "_Exit")
Opt("GUIOnEventMode", 1)
$Form = GUICreate("Chat", 202, 146, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$Input = GUICtrlCreateInput("", 8, 120, 121, 21)
$Button = GUICtrlCreateButton("Send", 136, 120, 59, 22, 0)
GUICtrlSetOnEvent(-1, "_Chat")
$Edit = GUICtrlCreateEdit("", 8, 8, 185, 105, BitOR($ES_AUTOVSCROLL, $ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL))
GUISetState(@SW_SHOW)
Global $Recv = ""
Global $ListenAdress = 0
Global $ConnectAdress = 0
Global $ConnectPort = 0
Global $Connected = 0
Global $Socket
Global $Adress = @IPAddress1
Global $Port = 33891
Func _Connect()
TCPStartup()
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Connecting..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Socket = -1
Do
$Socket = TCPConnect($Adress, $Port)
Until $Socket <> -1
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Listen..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Listen = TCPListen($Adress, $Port)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Accept..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
TCPAccept($Listen)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Connected" & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Connected = 1
$ConnectAdress = 0
EndFunc ;==>_Connect
Func _Listen()
TCPStartup()
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Listen..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Listen = TCPListen($Adress, $Port)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Accept..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Socket = -1
Do
$Socket = TCPAccept($Listen)
Until $Socket <> -1
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Connecting..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Connect = TCPConnect($Adress, $Port)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Connected" & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
$Connected = 1
$ListenAdress = 0
EndFunc ;==>_Listen
Func _Chat()
If $ListenAdress = 1 Then
$Adress = GUICtrlRead($Input)
If $Adress = "My Adress" Then
$Adress = @IPAddress1
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Adress: " & $Adress & @CRLF)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Port: " & $Port & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
Else
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Adress: " & $Adress & @CRLF)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Port: " & $Port & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
EndIf
_Listen()
ElseIf $ConnectAdress = 1 Then
$Adress = GUICtrlRead($Input)
GUICtrlSetData($Input, "")
If $Adress = "My Adress" Then
$Adress = @IPAddress1
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Adress: " & $Adress & @CRLF)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Port: " & $Port & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
Else
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Adress: " & $Adress & @CRLF)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Port: " & $Port & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
EndIf
_Connect()
ElseIf $ConnectPort = 1 Then
$Port = GUICtrlRead($Input)
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Port: " & $Port & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
$ConnectPort = 0
Else
$Data = GUICtrlRead($Input)
If $Data = "Connect" Then
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Connect:" & @CRLF & "Insert Adress: " & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
$ConnectAdress = 1
ElseIf $Data = "Listen" Then
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Listen:" & @CRLF & "Insert Adress: " & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
$ListenAdress = 1
ElseIf $Data = "Port" Then
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Insert Port: " & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
$ConnectPort = 1
ElseIf $Data = "" Then
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "No Message..." & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
ElseIf $Data = "My Adress" Then
GUICtrlSetData($Edit, GUICtrlRead($Edit) & "Adress: " & @IPAddress1 & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
Else
GUICtrlSetData($Edit, GUICtrlRead($Edit) & @UserName & ": " & $Data & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
GUICtrlSetData($Input, "")
TCPSend($Socket, @UserName & ": " & $Data)
EndIf
EndIf
EndFunc ;==>_Chat
Func _Recv()
GUICtrlSetData($Edit, GUICtrlRead($Edit) & $Recv & @CRLF)
$Lines = _GUICtrlEdit_GetLineCount($Edit)
_GUICtrlEdit_LineScroll($Edit, 0, $Lines)
EndFunc
Func _Exit()
Exit
EndFunc ;==>_Exit
While 1
$Recv = TCPRecv($Socket, 2048)
If $Recv <> "" Then
_Recv()
EndIf
WEnd