Esempio n. 1
0
        //start serwera
        private void button1_Click(object sender, EventArgs e) //start server
        {
            try {
                if (Regex.IsMatch(IPTextBox.Text, @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b") && !is_running)
                {
                    server = new TcpListener(IPAddress.Parse(IPTextBox.Text), int.Parse(PortTextBox.Text));
                    server.Start();

                    ReadUserDataFromFile("userdata.txt");


                    TextConsole.AppendText("Server started\n");
                    TextConsole.AppendText("Waiting for client...");

                    client = server.AcceptTcpClient();
                    socket = client.Client;
                    TextConsole.AppendText("Client connected \n");

                    STR           = new StreamReader(client.GetStream());
                    STW           = new StreamWriter(client.GetStream());
                    STW.AutoFlush = true;
                    is_running    = true;

                    STW.WriteLine("220 " + server_name + " " + DateTime.Now.ToString("MM\\/dd\\/yyyy h\\:mm tt"));

                    backgroundWorker1.WorkerSupportsCancellation = true;
                    backgroundWorker1.RunWorkerAsync(); //receiving data
                }
                else
                {
                    if (is_running)
                    {
                        MessageBox.Show("Already started\n");
                    }
                    else
                    {
                        MessageBox.Show("Wrong IP Address");
                    }
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
Esempio n. 2
0
 private void WriteConsole(string text)
 {
     TextConsole.AppendText("\n" + text);
 }
Esempio n. 3
0
        //odbieranie wiadomosci i rozpoznawanie komend
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            while (client.Connected)
            {
                try
                {
                    if (ready_to_save_file)
                    {
                        this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText("Saving file" + "\n"); }));
                        SaveAsFile();
                        ready_to_save_file = false;
                    }

                    else
                    {
                        received_message = STR.ReadLine();
                        if (received_message != "")
                        {
                            //this.TextConsole.Invoke(new MethodInvoker( delegate() { TextConsole.AppendText("From Client: "+received_message + "\n"); }));

                            if (received_message.Length > 3 && received_message.Substring(0, 4) == "Size")
                            {
                                _file_size = int.Parse(received_message.Substring(5));
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                SendTextMessage("250 Size Ok");
                            }


                            if (received_message.Length > 7 && received_message.Substring(0, 8) == "FileName")
                            {
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                _file_name         = received_message.Substring(9);
                                ready_to_save_file = true;
                                SendTextMessage("250 Ready");
                            }
                            if (read_mail_message)
                            {
                                if (received_message == ".")
                                {
                                    read_mail_message = false;
                                }
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                            }
                            if (received_message == "No files")
                            {
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                            }

                            if (!client_logged && received_message.Substring(0, 4) == "user")
                            {
                                bool user_found = false;
                                foreach (Users user in userDatabase)
                                {
                                    if (user.username == received_message.Substring(5, received_message.Length - 5))
                                    {
                                        SendTextMessage("250 User Ok");
                                        user_found = true;
                                    }
                                }
                                if (!user_found)
                                {
                                    MessageBox.Show("Wrong username");
                                }
                            }

                            if (!client_logged && received_message.Substring(0, 4) == "pass")
                            {
                                bool pass_found = false;
                                foreach (Users user in userDatabase)
                                {
                                    if (user.password == received_message.Substring(5, received_message.Length - 5))
                                    {
                                        SendTextMessage("250 Pass Ok");
                                        pass_found    = true;
                                        client_logged = true;
                                    }
                                }
                                if (!pass_found)
                                {
                                    MessageBox.Show("Wrong password");
                                }
                            }


                            if (received_message.Length > 9 && received_message.Substring(0, 10) == "mail from:")
                            {
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                SendTextMessage("250 Ok");
                            }

                            if (received_message.Length > 7 && received_message.Substring(0, 8) == "rcpt to:")
                            {
                                this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                SendTextMessage("250 Accepted");
                            }


                            if (received_message.Length >= 4)
                            {
                                switch (received_message.Substring(0, 4))
                                {
                                case "helo":
                                {
                                    this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                    STW.WriteLine("250 Hello " + received_message.Substring(5, received_message.Length - 5) + " " + server_name + " here!");
                                    break;
                                }

                                case "data":
                                {
                                    this.TextConsole.Invoke(new MethodInvoker(delegate() { TextConsole.AppendText(received_message + "\n"); }));
                                    SendTextMessage("354 Ok Send data");
                                    read_mail_message = true;
                                    break;
                                }

                                default:
                                {
                                    break;
                                }
                                }
                            }
                            received_message = "";
                        }
                    }
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message.ToString());
                }
            }
        }