示例#1
0
文件: Form1.cs 项目: Mysthic/Yascp
 private void btnListen_Click(object sender, EventArgs e)
 {
     IPAddress ipAddr = IPAddress.Parse(txtIp.Text);
     ChatServer mainServer = new ChatServer(ipAddr);
     ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
     mainServer.StartListening();
     txtLog.AppendText("Monitoring for connections...\r\n");
 }
示例#2
0
      //private SimpleIRCRelay relay = SimpleIRCRelay.DefaultRelay;
      //public event ChatEventHandler OnUserListChange;

      //Set up the logger when building the chat provider. Logging will go out to a file and the console
      //if possible. Otherwise, log to the default logger (which is like throwing them away)
      public Chat(int userUpdateInterval, ChatServer manager)
      {
         userUpdateTimer.Interval = userUpdateInterval * 1000;
         userUpdateTimer.Elapsed += UpdateActiveUserList;
         userUpdateTimer.Start();

         //Assume the manager that was given was good
         this.manager = manager;

         foreach (Module module in manager.GetModuleListCopy())
            module.OnExtraCommandOutput += DefaultOutputMessages;
      }
示例#3
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            // Parse the server's IP address out of the TextBox
            IPAddress ipAddr = IPAddress.Parse(txtIp.Text);
            // Create a new instance of the ChatServer object
            ChatServer mainServer = new ChatServer(ipAddr);

            // Hook the StatusChanged event handler to mainServer_StatusChanged
            ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
            // Start listening for connections
            mainServer.StartListening();
            // Show that we started to listen for connections
            txtLog.AppendText("Monitoring for connections...\r\n");
        }
示例#4
0
 public Response Handle(ChatServer server, Request request)
 {
     try
     {
         return(RequestHandlers[request.RequestCode].Handle(server, request));
     }
     catch (KeyNotFoundException)
     {
         return(new ErrorResponse(new BadRequestException()));
     }
     catch (Exception e)
     {
         return(new ErrorResponse(e));
     }
 }
示例#5
0
            internal ServerSession(TcpClient client, ChatServer server, long sessionID)
            {
                this.sessionID = sessionID;
                this.server    = server;
                this.client    = client;
                var bf     = new BinaryFormatter();
                var stream = client.GetStream();

                if (stream == null)
                {
                    throw new NullReferenceException();
                }
                br = new BinaryFormatterReader(bf, stream);
                bw = new BinaryFormatterWriter(bf, stream);
            }
示例#6
0
文件: Program.cs 项目: Kallameet/SPV2
        static void Main(string[] args)
        {
            ChatServer server = new ChatServer("127.0.0.1", 12345);

            try
            {
                server.Start();
            }
            catch (Exception e)
            {
                Console.WriteLine("Unexpected Exception occured.");
                Console.WriteLine(e.ToString());
                Console.ReadKey();
            }
        }
示例#7
0
        public void Message_ConnectTest()
        {
            Socket testSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            ChatServer.ChatServer cs = new ChatServer.ChatServer(7777);
            cs.StartListening();

            testSocket.Connect("127.0.0.1", 7777);
            Net_SendData(testSocket, "TestUsername");
            string resp = Net_RecieveData(testSocket);


            //string resp = Net_RecieveData(testSocket);
            Assert.AreEqual(resp, "1");
        }
示例#8
0
 private void Btn_Start_Click(object sender, EventArgs e)
 {
     if (isConnect)
     {
         server.Stop();
         Btn_Start.Text = "Star";
     }
     else
     {
         server = new ChatServer(Combo_IP.Text, Txt_port.Text, this);
         server.Start();
         Btn_Start.Text = "Stop";
     }
     isConnect = !isConnect;
 }
示例#9
0
        private void btnAtender_Click(object sender, EventArgs e)
        {
            IPAddress enderecoIP = IPAddress.Parse(txt_log.Text);

            // Cria uma nova instância do objeto ChatServer
            ChatServer mainServidor = new ChatServer(enderecoIP);

            // Vincula o tratamento de evento StatusChanged a mainServer_StatusChanged
            ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);

            // Inicia o atendimento das conexões
            mainServidor.IniciaAtendimento();

            // Mostra que nos iniciamos o atendimento para conexões
            txt_log.AppendText("Monitorando as conexões...\r\n");
        }
示例#10
0
        protected override void Setup()
        {
            log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationPath, "log");
            FileInfo file = new FileInfo(Path.Combine(this.BinaryPath, "log4net.config"));

            if (file.Exists)
            {
                LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
                XmlConfigurator.ConfigureAndWatch(file);

                peerDictionary = new Dictionary <Guid, ChatPeer>();
                Server         = this;

                Log.Info("Server Setup Successiful.......");
            }
        }
示例#11
0
        public static void Main()
        {
            ChatServer server = new ChatServer();

            server.Start();
            string command;

            do
            {
                command = Console.ReadLine() ?? "";
                if (command.Equals("cls"))
                {
                    Console.Clear();
                }
            } while (!command.Equals("stop"));
            server.Close();
        }
示例#12
0
        static void Main()
        {
            var parametrs = new Parametrs("config.ini");

            parametrs.LoadParametrs();
            var transport = new LiteNetLibTransport(parametrs.MaxConnection, parametrs.KeyConnection);
            var protocol  = new TransportUdpProtocol(transport, parametrs.MaxMessageSize, new BinarySerializer());
            var network   = new ProtocolUdpNetwork(protocol, new RealNow(), parametrs.Timeout);

            _server         = new ChatServer(network, parametrs.MaxMessageLength);
            _timer          = new Timer(100);
            _timer.Elapsed += OnTimerElapsed;
            network.Start(parametrs.Port);
            _timer.Start();

            Console.ReadKey();
        }
示例#13
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            // Считываем IP-адреса сервера из  TextBox
            IPAddress ipAddr = IPAddress.Parse(txtIp.Text);

            port = Convert.ToInt32(textBox1.Text);
            long IPv6 = ipAddr.ScopeId;
            //Создаем новый экземпляр объекта ChatServer
            ChatServer mainServer = new ChatServer(IPv6, port);

            // Подключаем обработчик событий StatusChanged к mainServer_StatusChanged
            ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
            //Начинаем  прослушивать соединения
            mainServer.StartListening();

            txtLog.AppendText("Мониторинг подключений...\r\n");
        }
示例#14
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            ChatServer.intPuerto = int.Parse(tbPuerto.Text);
            string strqry = "UPDATE [dbPOI].[dbo].[tblSubGrupo] SET[strDireccionIP] = '" + tbDireccionIP.Text + "', [intPuerto] = " + tbPuerto.Text + " WHERE IDGrupo = " + numericUpDown1.Value;

            cFunciones.EnviarComandoSQLMIServer(strqry, "");

            // Parse the server's IP address out of the TextBox
            IPAddress ipAddr = IPAddress.Parse(tbDireccionIP.Text);
            // Create a new instance of the ChatServer object
            ChatServer mainServer = new ChatServer(ipAddr);

            // Hook the StatusChanged event handler to mainServer_StatusChanged
            ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
            // Start listening for connections
            mainServer.StartListening();
            // Show that we started to listen for connections
            txtLog.AppendText("Monitoreando conexion...\r\n");
        }
示例#15
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            // Parse the server's IP address out of the TextBox
            IPAddress ipAddr = IPAddress.Parse(txtIp.Text);

            // Create a new instance of the ChatServer object
            mainServer = new ChatServer(ipAddr);
            // Start listening for connections
            if (mainServer.StartListening())
            {
                // Hook the StatusChanged event handler to mainServer_StatusChanged
                ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
                // Show that we started to listen for connections
                txtLog.AppendText("Server started on " + ipAddr + ":" + GeoCommunication.CONSTS.CHAT_PORT + "...\r\n");
            }
            else
            {
                txtLog.AppendText("Unable to Start Server!\r\n");
            }
            //((Button)sender).Enabled = false;
        }
示例#16
0
 private void btnListen_Click(object sender, EventArgs e)
 {
     try
     {
         // Преобразуем значение из txtIp в объект типа IPAddress
         IPAddress ipAddr = IPAddress.Parse(txtIp.Text);
         // Создается новый экземпляр объекта ChatServer
         mainServer = new ChatServer(ipAddr);
         // Подключаем обработчик события ChatMessageHandler к mainServer_ChatMessageHandler
         ChatServer.ChatMessageHandler += new ChatMessageEventHandler(mainServer_ChatMessageHandler);
         // Начинается прослушивание соединений
         mainServer.StartListening();
         txtLog.AppendText("Monitoring for connections...\r\n");
         btnListen.Enabled = false;
     }
     catch
     {
         txtLog.AppendText("Error with creating server acceptor...\r\n");
         return;
     }
 }
示例#17
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            // Parse the server's IP address out of the TextBox
            IPAddress ipAddr = IPAddress.Parse(txtIp.Text);
            // Create a new instance of the ChatServer object
            mainServer = new ChatServer(ipAddr);
            // Start listening for connections
            if (mainServer.StartListening())
            {
                // Hook the StatusChanged event handler to mainServer_StatusChanged
                ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
                // Show that we started to listen for connections
                txtLog.AppendText("Server started on "+ipAddr+":"+GeoCommunication.CONSTS.CHAT_PORT+"...\r\n");

            }
            else
            {
                txtLog.AppendText("Unable to Start Server!\r\n");
            }
            //((Button)sender).Enabled = false;
        }
示例#18
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            int port;

            if (!int.TryParse(textBox_port.Text, out port) || port < 0 || port > 65535)
            {
                MessageBox.Show("Invalid port number.");
                return;
            }

            ChatServer mainServer = new ChatServer(port);

            // Привязка
            ChatServer.StatusChanged += new StatusChangedEventHandler(mainServer_StatusChanged);
            // Запуск прослушивания
            mainServer.StartListening();
            // Отображение прослушивания
            btnListen.Enabled    = false;
            textBox_port.Enabled = false;
            txtLog.AppendText("Monitoring for connections...\r\n");
        }
示例#19
0
文件: Program.cs 项目: lmcoa15/Drone
        public static void Main(string[] args)
        {
enterHostPort:
            UInt16 hostPort;

            Console.Write("수신 대기할 포트 입력: ");
            try {
                hostPort = UInt16.Parse(Console.ReadLine().Trim());
            } catch {
                Console.WriteLine("다시 입력하세요");
                goto enterHostPort;
            }

            ChatServer cs = new ChatServer();

            cs.StartServer(hostPort);

            while (true)
            {
                String msg;
                Console.Write("보낼 메세지 (종료키: X): ");
                msg = Console.ReadLine().Trim();

                // 입력받은 문자열이 null 인 경우, 다시 반복문의 처음으로 돌아간다.
                if (String.IsNullOrEmpty(msg))
                {
                    continue;
                }

                // 입력받은 문자열이 X 인 경우, 프로그램을 종료한다.
                if (msg.Equals("X"))
                {
                    cs.StopServer();
                    return;
                }

                // 그 외의 경우엔 메세지를 보낸다.
                cs.SendMessage(msg);
            }
        }
示例#20
0
 public Connection(TcpClient tcpClient, ChatServer chatServer)
 {
     this._tcpClient  = tcpClient;
     this._chatServer = chatServer;
 }
示例#21
0
文件: Program.cs 项目: jhlllnd/Asgard
 static void Main(string[] args)
 {
     var chatserver = new ChatServer();
     chatserver.Run();
 }
示例#22
0
        static void Main(string[] args)
        {
            ChatServer server = new ChatServer();

            server.StartServer("127.0.0.1", 10001);
        }
示例#23
0
        public static void Main(string[] args)
        {
            var server = ChatServer.GetInstance(FileSystemDatabase.Initialize());

            server.Run();
        }
示例#24
0
        static void Main(string[] args)
        {
            ChatServer server = new ChatServer();

            server.Start();
        }
示例#25
0
        static void Main(string[] args)
        {
            ChatServer server = new ChatServer(9001);

            server.Run();
        }
示例#26
0
        static void Main(string[] args)
        {
            ChatServer server = new ChatServer(1234);

            server.connection();
        }
示例#27
0
        // Происходит, когда принимается новый клиент
        private void AcceptClient()
        {
            srReceiver = new System.IO.StreamReader(tcpClient.GetStream());
            swSender   = new System.IO.StreamWriter(tcpClient.GetStream());

            // Читаем информацию о счете от клиента
            currUser = srReceiver.ReadLine();

            // Мы получили ответ от клиента
            if (currUser != "")
            {
                // Сохраняем имя пользователя в хэш-таблице
                if (ChatServer.htUsers.Contains(currUser) == true)
                {
                    // 0 означает не подключен
                    swSender.WriteLine("0|Это имя пользователя уже существует.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else if (currUser == "Administrator")
                {
                    // 0 означает не подключен
                    swSender.WriteLine("0|Это имя пользователя зарезервировано.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else
                {
                    // 1 означает успешное подключение
                    swSender.WriteLine("1");
                    swSender.Flush();

                    // Добавьте пользователя в хэш-таблицы и начните прослушивать сообщения от него
                    ChatServer.AddUser(tcpClient, currUser);
                }
            }
            else
            {
                CloseConnection();
                return;
            }

            try
            {
                // Продолжаем ждать сообщения от пользователя
                while ((strResponse = srReceiver.ReadLine()) != "")
                {
                    // Если он недействителен, удаляем пользователя
                    if (strResponse == null)
                    {
                        ChatServer.RemoveUser(tcpClient);
                    }
                    else
                    {
                        // В противном случае отправляем сообщение всем остальным пользователям
                        ChatServer.SendMessage(currUser, strResponse);
                    }
                }
            }
            catch
            {
                // Если что-то пошло не так с этим пользователем, отключите его
                ChatServer.RemoveUser(tcpClient);
            }
        }
示例#28
0
        // Occures when a new client is accepted
        private void AcceptClient()
        {
            srReceiver = new StreamReader(tcpClient.GetStream());
            swSender   = new StreamWriter(tcpClient.GetStream());

            // Read the account information from the client
            currUser     = srReceiver.ReadLine();
            currPassword = srReceiver.ReadLine();

            // We got a response from the client
            if (currUser != "")
            {
                // Store the user name in the hash table
                if (ChatServer.htUsers.Contains(currUser) == true)
                {
                    // 0 means not connected
                    swSender.WriteLine("0|This username already exists.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else if (currUser == "Administrator")
                {
                    // 0 means not connected
                    swSender.WriteLine("0|This username is reserved.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else
                {
                    SqlConnection connection = new SqlConnection(_connectionString);
                    connection.Open();
                    SqlDataReader reader;
                    SqlCommand    cmd = new SqlCommand()
                    {
                        Connection  = connection,
                        CommandText = "SELECT login, password FROM [dbo].[Users] WHERE (Users.login = N'" + currUser + "') AND (Users.password = N'" + currPassword + "')"
                    };
                    reader = cmd.ExecuteReader();
                    reader.Read();
                    Debug.Print(String.Format("1{0}1", reader["login"]));
                    Debug.Print(String.Format("1{0}1", currUser));
                    if (reader["login"].ToString().TrimEnd() == currUser)
                    {
                        swSender.WriteLine("1");
                        swSender.Flush();

                        // Add the user to the hash tables and start listening for messages from him
                        ChatServer.AddUser(tcpClient, currUser);
                    }
                    else
                    {
                        swSender.WriteLine("0|Wrong username or password.");
                        swSender.Flush();
                        CloseConnection();
                    }
                    connection.Close();
                    cmd.Dispose();

                    // 1 means connected successfully
                }
            }
            else
            {
                CloseConnection();
                return;
            }

            try
            {
                // Keep waiting for a message from the user
                while ((strResponse = srReceiver.ReadLine()) != "")
                {
                    // If it's invalid, remove the user
                    if (strResponse == null)
                    {
                        ChatServer.RemoveUser(tcpClient);
                    }
                    else
                    {
                        // Otherwise send the message to all the other users
                        ChatServer.SendMessage(currUser, strResponse);
                    }
                }
            }
            catch
            {
                // If anything went wrong with this user, disconnect him
                ChatServer.RemoveUser(tcpClient);
            }
        }
示例#29
0
        // Occures when a new client is accepted
        private void AcceptClient()
        {
            srReceiver = new System.IO.StreamReader(tcpClient.GetStream());
            swSender   = new System.IO.StreamWriter(tcpClient.GetStream());

            // Read the account information from the client
            currUser = srReceiver.ReadLine();

            // We got a response from the client
            if (currUser != "")
            {
                // Store the user name in the hash table
                if (ChatServer.htUsers.Contains(currUser) == true)
                {
                    // 0 means not connected
                    swSender.WriteLine("0|This username already exists.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else if (currUser == "Administrator")
                {
                    // 0 means not connected
                    swSender.WriteLine("0|This username is reserved.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else
                {
                    // 1 means connected successfully
                    swSender.WriteLine("1");
                    swSender.Flush();

                    // Add the user to the hash tables and start listening for messages from him
                    ChatServer.AddUser(tcpClient, currUser);
                }
            }
            else
            {
                CloseConnection();
                return;
            }

            try
            {
                // Keep waiting for a message from the user
                while ((strResponse = srReceiver.ReadLine()) != "")
                {
                    // If it's invalid, remove the user
                    if (strResponse == null)
                    {
                        ChatServer.RemoveUser(tcpClient);
                    }
                    else
                    {
                        // Otherwise send the message to all the other users
                        ChatServer.SendMessage(currUser, strResponse);
                    }
                }
            }
            catch
            {
                // If anything went wrong with this user, disconnect him
                ChatServer.RemoveUser(tcpClient);
            }
        }
示例#30
0
        // Occures when a new client is accepted
        private void AcceptClient()
        {
            srReceiver = new System.IO.StreamReader(tcpClient.GetStream());
            swSender   = new System.IO.StreamWriter(tcpClient.GetStream());

            // Read the account information from the client
            currUser = srReceiver.ReadLine();

            // We got a response from the client
            if (currUser != "")
            {
                // Store the user name in the hash table
                if (ChatServer.htUsers.Contains(currUser) == true)
                {
                    // 0 means not connected
                    swSender.WriteLine("0\"This username already exists.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else if (currUser == "Administrator")
                {
                    // 0 means not connected
                    swSender.WriteLine("0\"This username is reserved.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else if (currUser.IndexOf("\"") >= 0)
                {
                    // 0 means not connected
                    swSender.WriteLine("0\"The character \" is not allowed.");
                    swSender.Flush();
                    CloseConnection();
                    return;
                }
                else
                {
                    // 1 means connected successfully
                    swSender.WriteLine("1");
                    swSender.Flush();

                    // Add the user to the hash tables and start listening for messages from him
                    ChatServer.AddUser(tcpClient, currUser);
                }
            }
            else
            {
                CloseConnection();
                return;
            }

            try
            {
                Thread.Sleep(2000);
                String[] allUsers = new String[ChatServer.htConnections.Count];
                ChatServer.htConnections.Values.CopyTo(allUsers, 0);
                string addUserRequest = "\"2";
                for (int i = 0; i < allUsers.Length; i++)
                {
                    // Try sending a message to each
                    try
                    {
                        // If the message is blank or the connection is null, break out
                        if (tcpClient == null || allUsers[i] == currUser)
                        {
                            continue;
                        }
                        // Send the message to the current user in the loop
                        addUserRequest += "\"" + allUsers[i];
                    }
                    catch // If there was a problem, the user is not there anymore, remove him
                    {
                        ChatServer.RemoveUser(tcpClient);
                    }
                }
                swSender.WriteLine(addUserRequest);
                swSender.Flush();
                // Keep waiting for a message from the user
                while (ChatServer.ServRunning && tcpClient.Connected)
                {
                    if (tcpClient.Available > 0)
                    {
                        strResponse = srReceiver.ReadLine();
                        // If it's invalid, remove the user
                        if (strResponse == null)
                        {
                            ChatServer.RemoveUser(tcpClient);
                        }
                        else
                        {
                            // Otherwise send the message to all the other users
                            String[] tokens = strResponse.Split('\"');
                            switch (tokens[0])
                            {
                            case "":
                                switch (tokens[1])
                                {
                                case "1":
                                    ChatServer.SendBroadcastMessage("\"1\"" + currUser + ": " + tokens[2]);
                                    break;

                                case "3":
                                    ChatServer.RemoveUser(tcpClient);
                                    return;
                                }
                                break;

                            default:
                                switch (tokens[1])
                                {
                                case "1":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"1\"" + tokens[2]);
                                    break;

                                case "4":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"4\"" + tokens[2] + "\"" + tokens[3] + "\"" + tokens[4] + "\"" + tokens[5] + "\"" + tokens[6]);
                                    break;

                                case "5":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"5\"" + tokens[2] + "\"" + tokens[3] + "\"" + tokens[4]);
                                    break;

                                case "7":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"7");
                                    break;

                                case "o":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"o\"" + tokens[2] + "\"" + tokens[3] + "\"" + tokens[4] + "\"" + tokens[5]);
                                    break;

                                case "O":
                                    ChatServer.SendPrivateMessage(currUser, tokens[0], currUser + "\"O\"" + tokens[2] + "\"" + tokens[3] + "\"" + tokens[4]);
                                    break;
                                }
                                break;
                            }
                        }
                    }
                    else
                    {
                        Thread.Sleep(50);
                    }
                }
            }
            catch
            {
                // If anything went wrong with this user, disconnect him
            }
            ChatServer.RemoveUser(tcpClient);
            try
            {
                tcpClient.Close();
            }
            catch { }
        }