Hi leute, ich habe einen Chat gemacht (INC) also er ist noch nicht fertig, aber ich wollte ihn schon mal Posten und fragen ob er bei euch auch geht, da es da letzt probleme mit meinem Server gab, wenn dndere ihn gestartet haben! Also bei mir geht alles
Client
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=\Pic\INC.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <INet.au3>
;~ #include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListBoxConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <GuiEdit.au3>
#include <GuiListBox.au3>
$Sichtbar = True
$Name = InputBox("INC", "Gib deinen Namen ein")
If @error Then Exit
$IP = InputBox("INC", "Die IP des Servers", _GetIP())
If @error Then Exit
#Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Hendrik\Favoriten\Eigene Dateien\AutoIt\INC\Benutzeroberfläche\INC1.kxf
$INC = GUICreate("INC - " & $Name, 503, 380, 291, 296)
GUISetBkColor(0x4CEC00)
GUISetIcon("C:\Dokumente und Einstellungen\Hendrik\Favoriten\Eigene Dateien\AutoIt\INC\Pic\INC.ico")
$Edit1 = GUICtrlCreateEdit("", 3, 3, 368, 262, BitOR($ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL))
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$List1 = GUICtrlCreateList("", 372, 3, 127, 262)
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$Edit2 = GUICtrlCreateEdit("", 3, 267, 496, 89, BitOR($ES_WANTRETURN, $WS_VSCROLL))
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$Senden = GUICtrlCreateButton("Senden", 423, 357, 75, 22, 0)
GUICtrlSetFont(-1, 9, 400, 0, "Arial")
$Checkbox1 = GUICtrlCreateCheckbox("Ton an", 3, 357, 97, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Dim $Form2_AccelTable[1][2] = [["{ENTER}", $Senden]]
GUISetAccelerators($Form2_AccelTable)
#EndRegion ### END Koda GUI section ###
TCPStartup()
$Port = 31758
$ConnectedSocket = TCPConnect($IP, $Port)
If $ConnectedSocket = -1 Then
MsgBox(16, "Error", "Es ist bei dem Verbindungsversuch ein Fehler aufgetreten, vermutlich ist kein Server gestartet!")
Exit
Else
TCPSend($ConnectedSocket, "Name|" & $Name)
MsgBox (64,"INC","Drücken Sie Strg+Q um INC unsichtbar bzw. sichtbar zu machen")
HotKeySet ("^{q}","_Sichtbar")
GUISetState(@SW_SHOW)
EndIf
While 1
$Empfang = TCPRecv($ConnectedSocket, 9999)
$sEmpfang = StringSplit($Empfang, "|")
If IsArray($sEmpfang) = 1 Then
If $sEmpfang[1] = "Namen" Then
If GUICtrlRead($Checkbox1) = 1 Then
_Beep(2)
EndIf
For $1 = 3 To $sEmpfang[2] + 2
GUICtrlSetData($List1, $sEmpfang[$1])
Next
ElseIf $sEmpfang[1] = "Nachricht" Then
$Edit2Read = GUICtrlRead($Edit1)
If GUICtrlRead($Checkbox1) = 1 Then
_Beep(1)
EndIf
If $Edit2Read <> "" Then
$Text = $Edit2Read & @CRLF & $sEmpfang[2] & @CRLF & $sEmpfang[4]
Else
$Text = $sEmpfang[2] & @CRLF & $sEmpfang[4]
EndIf
GUICtrlSetData($Edit1, $Text)
_Scroll($Edit1)
ElseIf $sEmpfang[1] = "Off" Then
$del = _GUICtrlListBox_FindString($List1, $sEmpfang[2])
_GUICtrlListBox_DeleteString($List1, $del)
EndIf
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
TCPSend($ConnectedSocket, "Off|" & $Name)
Exit
Case $Senden
_Senden()
EndSwitch
WEnd
Func _Senden()
$Edit2Read = GUICtrlRead($Edit2)
$An = GUICtrlRead($List1)
If $Edit2Read <> "" Then
If $An <> "" Then
If $An <> $Name Then
$Text2 = "Nachricht|" & $Name & " " & _NowTime(5) & "|" & $An & "|" & $Edit2Read
TCPSend($ConnectedSocket, $Text2)
GUICtrlSetData($Edit2, "")
$Edit2Read = GUICtrlRead($Edit1)
$sText2 = StringSplit($Text2, "|")
If $Edit2Read <> "" Then
$Text = $Edit2Read & @CRLF & $sText2[2] & @CRLF & $sText2[4]
Else
$Text = $sText2[2] & @CRLF & $sText2[4]
EndIf
GUICtrlSetData($Edit1, $Text)
_Scroll($Edit1)
Else
MsgBox(16, "INC", "Du kannst keine Nachricht an dich selber schreiben!")
EndIf
Else
MsgBox(16, "INC", "Wähle einen Benutzer aus!")
EndIf
Else
MsgBox(16, "INC", "Du kannst keine Nachricht ohne Inhalt Senden!")
EndIf
EndFunc ;==>_Senden
Func _Scroll($Felt)
$Lines = _GUICtrlEdit_GetLineCount($Felt)
_GUICtrlEdit_LineScroll($Felt, 0, $Lines)
EndFunc ;==>_Scroll
Func _Sichtbar()
If $Sichtbar = True Then
GUISetState (@SW_HIDE)
$Sichtbar = False
ElseIf $Sichtbar = False Then
GUISetState (@SW_SHOW)
$Sichtbar = True
EndIf
EndFunc
Func _Beep($Beep)
If $Beep = 1 Then
Beep (1500,100)
Beep (1000,100)
Beep (800,100)
ElseIf $Beep = 2 Then
Beep (556,100)
Beep (686,100)
Beep (2200,100)
EndIf
EndFunc
Server
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListBoxConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
#include <INet.au3>
#include <GuiEdit.au3>
_GetIP()
#Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Hendrik\Favoriten\Eigene Dateien\AutoIt\INC\Benutzeroberfläche\INC-Server.kxf
$INCServer = GUICreate("INC-Server", 644, 293, 378, 337)
$Combo1 = GUICtrlCreateCombo(@IPAddress1, 3, 1, 145, 25)
If @IPAddress2 <> "0.0.0.0" Then
GUICtrlSetData(-1, @IPAddress2)
EndIf
If @IPAddress3 <> "0.0.0.0" Then
GUICtrlSetData(-1, @IPAddress3)
EndIf
If @IPAddress4 <> "0.0.0.0" Then
GUICtrlSetData(-1, @IPAddress4)
EndIf
$Edit1 = GUICtrlCreateEdit("", 3, 24, 356, 266,$WS_VSCROLL)
GUICtrlSetData(-1, "")
$List1 = GUICtrlCreateList("", 362, 4, 139, 278)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
$Label1 = GUICtrlCreateLabel("", 198, 3, 75, 17)
$Button1 = GUICtrlCreateButton("OK", 150, 1, 48, 22, 0)
$List2 = GUICtrlCreateList("", 502, 4, 139, 278)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetState($Button1, $GUI_HIDE)
GUICtrlSetState($Combo1, $GUI_HIDE)
GUISetState (@SW_HIDE)
ExitLoop
EndSwitch
WEnd
$IP = GUICtrlRead($Combo1)
GUICtrlSetData($Label1, $IP)
$MainSocket = TCPListen($IP, 31758)
$zahl = -1
Global $Speicher = ""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket > -1 Then
$zahl = $zahl + 1
$zahl1 = $zahl +1
$Speicher = $ConnectedSocket
EndIf
If $Speicher <> "" Then
$Neu = TCPRecv ($Speicher,9999)
If $Neu <> "" Then
$sNeu = StringSplit ($Neu,"|")
If $sNeu[1] = "Name" Then
GUICtrlSetData($List2, $sNeu[2] & "=" & $Speicher)
GUICtrlSetData($List1, $sNeu[2])
Local $text = ""
For $i = 0 To _GUICtrlListBox_GetCount($List1) - 1
If $i = 0 Then
$text = $text & _GUICtrlListBox_GetText($List1, $i)
Else
$text = $text & "|" & _GUICtrlListBox_GetText($List1, $i)
EndIf
Next
For $3 = 0 To $zahl
$Benutzer2 = _GUICtrlListBox_GetText($List2, $3)
If $Benutzer2 <> "" Then
$sBenutzer2 = StringSplit($Benutzer2, "=")
TCPSend($sBenutzer2[2], "Namen" & "|" & $zahl1 & "|" & $text)
EndIf
Next
$Speicher = ""
EndIf
EndIf
EndIf
If $zahl > -1 Then
For $1 = 0 To $zahl
$Benutzer3 = _GUICtrlListBox_GetText($List2, $1)
$sBenutzer3 = StringSplit($Benutzer3, "=")
StringReplace ($sBenutzer3,"=","=")
If $sBenutzer3[0] > 1 Then
$Empfang = TCPRecv($sBenutzer3[2], 9999)
If $Empfang <> "" Then
$Edit1Read = GUICtrlRead($Edit1)
GUICtrlSetData($Edit1, $Edit1Read & @CRLF & $Empfang)
_Scroll($Edit1)
$sEmpfang = StringSplit($Empfang, "|")
If $sEmpfang[1] = "Nachricht" Then
For $2 = 0 To $zahl
$Benutzer = _GUICtrlListBox_GetText($List2, $2)
$sBenutzer = StringSplit($Benutzer, "=")
If $sBenutzer[1] = $sEmpfang[3] Then
TCPSend($sBenutzer[2], $Empfang)
EndIf
Next
ElseIf $sEmpfang[1] = "Off" Then
$del = _GUICtrlListBox_FindString($List1, $sEmpfang[2])
_GUICtrlListBox_DeleteString($List1, $del)
$del = _GUICtrlListBox_FindString($List2, $sEmpfang[2])
_GUICtrlListBox_DeleteString($List2, $del)
$zahl = $zahl -1
$zahl1 = $zahl +1
For $3 = 0 To $zahl
$Benutzer2 = _GUICtrlListBox_GetText($List2, $3)
If $Benutzer2 <> "" Then
$sBenutzer2 = StringSplit($Benutzer2, "=")
TCPSend($sBenutzer2[2], "Off" & "|" & $sEmpfang[2])
EndIf
Next
EndIf
EndIf
EndIf
Next
EndIf
WEnd
Func _Scroll($Felt)
$Lines = _GUICtrlEdit_GetLineCount($Felt)
_GUICtrlEdit_LineScroll($Felt, 0, $Lines)
EndFunc ;==>_Scroll
EDIT:
Ein bischen was Aktualiesiert und Danke für die bishärigen 95 Downloads