Huhu
Problem :
Chat sockets werden in array geschrieben
Benutzernamen nicht x_X
komplettes restliches select funktioniert auch nicht ?
Hier mal der Code des servers
[autoit]
;Server by Nachid
#include
$ip = IniRead("config.ini","Config","IP","X")
$port = IniRead("config.ini","Config","Port","X")
$max = IniRead("config.ini","Config","Max","100")
If $ip="X" Or $port="X" Then Exit(1)
TCPStartup()
$main = TCPListen($ip,$port,$max)
Dim $socket[1]
Dim $nickaname[1]
$blocked = IniReadSection("config.ini","Blocked")
waitconnect()
Func waitconnect()
While 1
$grabconnection = TCPAccept($main)
If $grabconnection>=0 Then
_ArrayAdd($socket,$grabconnection)
_ArrayAdd($nickaname,"")
_ArrayDisplay($socket)
_ArrayDisplay($nickaname)
EndIf
For $i=1 To UBound($socket)-1
$rcv= TCPRecv($main,2048)
Select
Case $rcv<>"" And $nickaname[$i]=""
ConsoleWrite("Register nickname"&@CRLF)
For $x=1 To UBound($nickaname,1)-1
If $nickaname[$x]=$rcv Then
TSend("Name nicht zugelassen.",$socket[$i])
TSend("Name per /name ändern",$socket[$i])
$socket[$i]=""
$nickaname[$i]=""
TCPCloseSocket($socket[$i])
EndIf
Next
For $x=1 To UBound($blocked,1)
If StringInStr($rcv,$blocked[$x][1]) Then
TSend("Name nicht zugelassen.",$socket[$i])
TSend("Name per /name ändern",$socket[$i])
TCPCloseSocket($socket[$i])
$socket[$i]=""
$nickaname[$i]=""
EndIf
Next
If Not $socket[$i]="" Then $nickaname[$i]=$rcv
Case StringTrimLeft($rcv,3)="/w "
ConsoleWrite("Whisper"&@CRLF)
$to = StringSplit($rcv," ")
$rest = ""
For $x=1 To UBound($to,1)-2
$rest = $rest&$to[$x]
Next
$to = $to[2]
For $x=1 To UBound($nickaname,1)-1
If $nickaname[$x]=$to Then
TSend($rest,$socket[$x])
TSend($rest,$socket[$i])
EndIf
Next
Case Else
If $rcv<>"" Then
ConsoleWrite("Send to all"&@CRLF)
TSend($rcv)
EndIf
EndSelect
Next
WEnd
EndFunc
Func TSend($var,$ssocket = Default)
If $ssocket = Default Then
For $i=1 To UBound($socket,1)-1
If $socket[$i]<>"" Then
TCPSend($socket[$i],$var)
ConsoleWrite("Socket : "&$socket[$i]&@CRLF)
ConsoleWrite("Nick : "&$nickaname[$i]&@CRLF)
EndIf
Next
Else
TCPSend($ssocket,$var)
ConsoleWrite("Socket : "&$ssocket&@CRLF)
ConsoleWrite("Nick : "&$var&@CRLF)
EndIf
EndFunc
Und hier ne kleine Test au3
[autoit];Server by Nachid
[/autoit][autoit][/autoit][autoit]TCPStartup()
$main = TCPConnect("192.168.0.100",33981)
If @error Then _
MsgBox(4112, "Fehler", "TCP-Connect schlug mit folgendem WSA-Fehler fehl: " & @error)
While 1
TCPSend($main,"Das ist ein Test")
If @error Then Exit(1)
WEnd
Wär richtig geil wenn mir jmd helfen könnte^^