theguy0000 Posted January 23, 2006 Share Posted January 23, 2006 (edited) expandcollapse popup;CWM SERVER: VERSION 0.0.1:ALPHA #include <Constants.au3> If ProcessExists(RegRead ("HKCU\Software\CWMessenger\Server", "version")&".exe") Then ProcessClose (RegRead ("HKCU\Software\CWMessenger\Server", "version")&".exe") $tray_config = TrayCreateItem ("Server Configuration") $tray_about = TrayCreateItem ("About CWM Server v0 Alpha") TrayCreateItem ("") $tray_disconn = TrayCreateItem ("Disconnect Server") $CWMdir = RegRead ("HKCU\Software\CWMessenger", "CWMdir") If $CWMdir = "" Then MsgBox (16, "CodeWiz Messenger Server", "Error: Could not read CWMdir from registry HKEY_CURRENT_USER\Software\CWMessenger") Exit EndIf $Port = 44844 Global $MaxConc = 100 Global $MainSocket = TCPStartServer($Port, $MaxConc) If @error <> 0 Then Exit MsgBox(16, "Error", "Server unable to initialize.") MsgBox (64, "CodeWiz Messenger Server", "Server started successfully at "&@IPAddress1) IniWrite ($CWMdir&"\info.ini", "connected", "connected", 1) Global Const $MaxLength = 512 Global $ConnectedSocket[$MaxConc] Global $CurrentSocket = 0 Local $Track = 0 Global Const $MaxConnection = ($MaxConc - 1) For $Track = 0 To $MaxConnection Step 1 $ConnectedSocket[$Track] = -1 Next While 1 $ConnectedSocket[$CurrentSocket] = TCPAccept($MainSocket) If $ConnectedSocket[$CurrentSocket] <> - 1 Then $CurrentSocket = SocketSearch() EndIf $Track = 0 For $Track = 0 To $MaxConnection Step 1 If $ConnectedSocket[$Track] <> - 1 Then $Data = TCPRecv($ConnectedSocket[$Track], $MaxLength) If @error Then IniWrite ($CWMdir&"\info.ini", "connected", "disconnected", 0) MsgBox (48, "CodeWiz Messenger Server", "The CWM server has been disconnected.") ProcessClose (@AutoItPID) Else IniWrite ($CWMdir&"\info.ini", "connected", "connected", 0) EndIf If $Data <> "" Then CWM_msg_interp($Data, $ConnectedSocket[$Track]) EndIf EndIf Next $tray_msg = TrayGetMsg() If $tray_msg = $tray_about Then CWM_about() If $tray_msg = $tray_config Then MsgBox ( 0, "CodeWiz Messenger Server", "Configuration is not ready yet." ) If $tray_msg = $tray_disconn Then Exit WEnd ;---------------- #region functions--------------------------------------------------------------------------------------------------------------------- ;---------------- Func SocketSearch() Local $Track = 0 For $Track = 0 To $MaxConnection Step 1 If $ConnectedSocket[$Track] = -1 Then Return $Track Else ; Socket In Use EndIf Next EndFunc;==>SocketSearch Func TCPSendMessageAll($ConnectionLimit, $Data) Local $Track = 0 For $Track = 0 To $ConnectionLimit Step 1 If $ConnectedSocket[$Track] <> - 1 Then TCPSend($ConnectedSocket[$Track], $Data) Next EndFunc;==>TCPSendMessageAll Func TCPStartServer($Port, $MaxConnect = 1) Local $Socket $Socket = TCPStartup() If $Socket = 0 Then SetError (@error) return -1 EndIf Global $Socket = TCPListen(@IPAddress1, $Port, $MaxConnect) If $Socket = -1 Then SetError(@error) Return 0 EndIf SetError(0) Return $Socket EndFunc;==>TCPStartServer ;------------------------------------------ Func CWM_msg_interp ($inputmsg, ByRef $Track_br) $msg_split = StringSplit ($inputmsg, ",") If $msg_split[0] > 3 Then For $i=4 To $msg_split[0] $msg_split[3] &= $msg_split[$i] Next EndIf $IP = $msg_split[1] $Action = $msg_split[2] If $Action <> "CWM_SERVER_PING" Then $info = $msg_split[3] $temp_conn = TCPConnect ($IP, $Port) Switch $Action Case "CWM_ACT_REGISTER" ;[IP],CWM_ACT_REGISTER,[username] [password] $register_info = StringSplit ($info, " ") If IniRead ( $CWMdir&"\info.ini", "registered_users", $register_info[1], "" ) <> "" Then TCPSend ($temp_conn, @IPAddress1 & ",CWM_REGISTER_FAILED,Registration was unsuccessfull. The specified username already exists.") Else If IniWrite ($CWMdir&"\info.ini", "registered_users", $register_info[1], $register_info[2]) = 0 Then TCPSend ($temp_conn, @IPAddress1 & ",CWM_REGISTER_FAILED,Registration was unsuccessfull. The server info file is mode R. please notify theguy0000@gmail.com.") MsgBox ( 48, "CodeWiz Messenger Server", $IP & " tried to register with username "&$register_info[1]&" and password "&$register_info[2]&", but was unsuccessful because the info.ini file is Read-Only.") EndIf EndIf Case "CWM_ACT_LOGIN" $input = StringSplit ($info, " ") $username = $input[1] $password = $input[2] $user_ini = IniRead ($CWMdir&"\info.ini", "registered_users", $username, "") If $user_ini = "" Then TCPSend ($temp_conn, @IPAddress1 & ",CWM_LOGIN_FAILED,Incorrect username/Password") Else If $user_ini = $password Then IniWrite ($CWMdir&"\info.ini", "logged_users", $username, $IP) TCPSend ($temp_conn, @IPAddress1 & ",CWM_LOGIN_CONFIRM," & $username) Else TCPSend ($temp_conn, @IPAddress1 & ",CWM_LOGIN_FAILED,Incorrect username/Password") EndIf EndIf Case "CWM_MSG_SEND" $input = StringSplit ($info, " ") If $input[0] > 3 Then For $i=4 To $input[0] $input[3] &= $input[$i] Next EndIf $to = $input[1] $from = $input[2] $message = $input[3] $temp_conn2 = TCPConnect(CWM_User2Ip($to), $Port) TCPSend ($temp_conn2, @IPAddress1 & "CWM_MSG_RECV,"&$from&" "&$message) Case "CWM_SERVER_PING" TCPSend ($temp_conn, @IPAddress1&",CWM_SERVER_PONG") Case "CWM_CLIENT_BYE" TCPCloseSocket ($Track_br) $Track_br = -1 $CurrentSocket = SocketSearch() Case "CWM_BOUNCEBACK" TCPSend ($temp_conn, $info) Case "CWM_SERVER_EXIT" MsgBox (16, "CodeWiz Messenger Server", $info) Exit EndSwitch EndFunc Func CWM_User2Ip($user) Return IniRead ( $CWMdir&"\info.ini", "logged_users", $user, "") EndFunc Func CWM_about() MsgBox (0, "About CodeWiz Messenger", "CodeWiz Messenger Server v0 Alpha"&@CRLF&"Version 0.0.1-ALPHA"&@CRLF&"Coded by Matt Roth"&@CRLF&"Last Updated 1/22/2006"&@CRLF&""&@CRLF&"PLEASE NOTE: This software is state Alpha, and is subject to being unstable."&@CRLF&"Please send any bugs or other problems to Matt Roth <theguy0000@gmail.com>") EndFunc Func OnAutoItExit() MsgBox (0, "CodeWiz Messenger Server", "AutoItExit requested. Click OK to disconnect.") TCPSendMessageAll ($MaxConnection, @IPAddress1 & ",CWM_MSG_RECV,Global_Server_Message Server has been disconnect due to server exit request.") TCPCloseSocket ($Socket) EndFunc When I click any of my menu items, it just makes the autoit icon flash with a red X. what is wrong? Edited January 23, 2006 by theguy0000 The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN Link to comment Share on other sites More sharing options...
tonedeaf Posted January 23, 2006 Share Posted January 23, 2006 Opt("TrayAutoPause", 0) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now