示例#1
0
        internal void reconnect(String addressString, int addressPort, String authenticateString, List <String> initialUsers)
        {
            try
            {
                activeUsers.Clear();

                #region connect to switchboard
                try
                {
                    switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false);

                    if (!switchboardSocket.connected())
                    {
                        Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                        throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                    return;
                }
                #endregion

                #region authenticate
                //USR 7 [email protected] 189597.1056411784.29994\r\n
                switchboardSocket.send(new MSNMessage("USR " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + "\r\n"));
                #endregion

                #region add initial users
                //CAL 8 [email protected]\r\n
                if (initialUsers != null)
                {
                    for (int i = 0; i < initialUsers.Count; i++)
                    {
                        switchboardSocket.send(new MSNMessage("CAL " + MSNTrIDGenerator.NextID() + " " + initialUsers[i] + "\r\n"));
                    }
                }
                #endregion

                #region incommingMessageReadThread
                try
                {
                    incommingMessageHandlerThread.Abort();
                }
                catch (Exception)
                {
                }

                incommingMessageHandlerThread      = new Thread(new ThreadStart(processIncommingMessageLoop));
                incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread";
                incommingMessageHandlerThread.Start();
                #endregion

                #region incommingMSGThread
                try
                {
                    incommingMSGThread.Abort();
                }
                catch (Exception)
                {
                }

                incommingMSGThread      = new Thread(new ThreadStart(incommingMSGLoop));
                incommingMSGThread.Name = "Incomming MSG handler thread";
                incommingMSGThread.Start();
                #endregion

                #region outgoingMSGThread
                try
                {
                    outgoingMSGThread.Abort();
                }
                catch (Exception)
                {
                }

                outgoingMSGThread      = new Thread(new ThreadStart(outgoingMSGLoop));
                outgoingMSGThread.Name = "Outgoing MSG handler thread";
                outgoingMSGThread.Start();
                #endregion
            }
            catch (Exception)
            {
                Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
            }
        }
示例#2
0
        internal MSNSwitchboard(MSNController controller, String addressString, int addressPort, String authenticateString, List <String> initialUsers) //handles conversations started by local client
        {
            try
            {
                this.controller = controller;

                #region connect to switchboard
                try
                {
                    switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false);

                    if (!switchboardSocket.connected())
                    {
                        Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                        throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
                    return;
                }
                #endregion

                #region authenticate
                //USR 7 [email protected] 189597.1056411784.29994\r\n
                switchboardSocket.send(new MSNMessage("USR " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + "\r\n"));
                #endregion

                #region add initial users
                //CAL 8 [email protected]\r\n
                if (initialUsers != null)
                {
                    for (int i = 0; i < initialUsers.Count; i++)
                    {
                        switchboardSocket.send(new MSNMessage("CAL " + MSNTrIDGenerator.NextID() + " " + initialUsers[i] + "\r\n"));
                    }
                }
                #endregion

                #region incommingMessageReadThread
                incommingMessageHandlerThread      = new Thread(new ThreadStart(processIncommingMessageLoop));
                incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread";
                incommingMessageHandlerThread.Start();
                #endregion

                #region incommingMSGThread
                incommingMSGThread      = new Thread(new ThreadStart(incommingMSGLoop));
                incommingMSGThread.Name = "Incomming MSG handler thread";
                incommingMSGThread.Start();
                #endregion

                #region outgoingMSGThread
                outgoingMSGThread      = new Thread(new ThreadStart(outgoingMSGLoop));
                outgoingMSGThread.Name = "Outgoing MSG handler thread";
                outgoingMSGThread.Start();
                #endregion

                plugins.ElementAdded += new MSNListenableList <IMSNSwitchboardPlugin> .ElementAddedDelegate(plugins_ElementAdded);
            }
            catch (Exception)
            {
                //Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ", " + initialUsers.ToString() + ")");
            }
        }
示例#3
0
        internal MSNSwitchboard(MSNController controller, String addressString, int addressPort, String authenticateString, String rngTrID) //handles conversations started by local client
        {
            try
            {
                this.controller = controller;

                #region connect to switchboard
                try
                {
                    switchboardSocket = new MSNSocketWrapper(addressString, addressPort, false);

                    if (!switchboardSocket.connected())
                    {
                        Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")");
                        throw new Exception("Could not connect to switchboard in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")");
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Error making switchboard connection in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")");
                    return;
                }
                #endregion

                #region authenticate
                //ANS 1 [email protected] 1056411141.26158 17342299\r\n
                switchboardSocket.send(new MSNMessage("ANS " + MSNTrIDGenerator.NextID() + " " + controller.Username + " " + authenticateString + " " + rngTrID + "\r\n"));
                #endregion

                #region incommingMessageReadThread
                incommingMessageHandlerThread      = new Thread(new ThreadStart(processIncommingMessageLoop));
                incommingMessageHandlerThread.Name = "MSNSwitchboard incomming read thread";
                incommingMessageHandlerThread.Start();
                #endregion

                #region incommingMSGThread
                incommingMSGThread      = new Thread(new ThreadStart(incommingMSGLoop));
                incommingMSGThread.Name = "Incomming MSG handler thread";
                incommingMSGThread.Start();
                #endregion

                #region outgoingMSGThread
                outgoingMSGThread      = new Thread(new ThreadStart(outgoingMSGLoop));
                outgoingMSGThread.Name = "Outgoing MSG handler thread";
                outgoingMSGThread.Start();
                #endregion

                plugins.ElementAdded += new MSNListenableList <IMSNSwitchboardPlugin> .ElementAddedDelegate(plugins_ElementAdded);
            }
            catch (Exception)
            {
                Console.WriteLine("Error establishing switchboard session in MSNSwitchboard(" + controller.ToString() + ", " + addressString + ", " + addressPort + ", " + authenticateString + ")");
            }
        }