Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 21:42   #1
MinorUfa
 
Регистрация: 18.11.2013
Сообщений: 3
По умолчанию Блок-схема чата по локалке

Здравия всем! Помогите пожалуйста построить блок схему по коду:
Код:
namespace Chat1
{
    public partial class Чат : Form
    {
        private void IP_Enter(object sender, EventArgs e)
        {
            if (IP.Text == (String)IP.Tag)
            {
                IP.Text = "";
            }
            
        }

        private void IP_Leave(object sender, EventArgs e)
        {
            if (String.IsNullOrWhiteSpace(IP.Text))
            {
                IP.Text = "";
            }
        }

        public Чат()
        {
            InitializeComponent();
            new Thread(new ThreadStart(Receiver)).Start();          //Создание потока для приема сообщений
            list.Items.AddRange(File.ReadAllLines(@"C:\name.txt"));
        }
  
        void SetTextSafe(string newText)
        {
            if (IP.InvokeRequired) IP.Invoke(new Action<string>((s) => IP.Text = s), newText);
            else IP.Text = newText;
        }
        protected void Receiver()                                   //Метод потока
        {
            TcpListener Listen = new TcpListener(7000);             //Создание Listener на порт "по умолчанию"
            Listen.Start();                                         //Начинается прослушка
            Socket ReceiveSocket;                                   //заводится сокет
            while (true)
            {
                try
                {
                    ReceiveSocket = Listen.AcceptSocket();                  //Сообщение пришло
                    Byte[] Receive = new Byte[256];
                    using (MemoryStream MessageR = new MemoryStream())      //Чтение сообщения через поток?
                    {
                        Int32 ReceivedBytes;                                //Количество считанных байт
                        do
                        {
                            ReceivedBytes = ReceiveSocket.Receive(Receive, Receive.Length, 0);      //Чтение
                            MessageR.Write(Receive, 0, ReceivedBytes);                              //записание в потом (после чтения)
                        }
                        while (ReceiveSocket.Available > 0);                                        //Читаем до тех пор, пока в очереди не останется данных
                        ChatBox.BeginInvoke(AcceptDelegate, new object[] { "Он: " + Encoding.Default.GetString(MessageR.ToArray()), ChatBox });          //Добавление данных в ChatBox
                    }
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

            }
        }
        //Отправляет сообщение в потоке на IP, заданный в контроле IP
        void ThreadSend(object Message)
        {
            try
            {
                String MessageText = "";            //Проверяет входной объект на соответствие строки
                if (Message is String)
                    MessageText = Message as String;
                else
                    throw new Exception("Поле не должно остаться пустым...");
                IPEndPoint EndPoint = new IPEndPoint(IPAddress.Parse(IP.Text), 7000);                     //Создание сокета (присоединение)
                Socket Connector = new Socket(EndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                Connector.Connect(EndPoint);
                Byte[] SendBytes = Encoding.Default.GetBytes(MessageText);      //Отправляется сообщение
                Connector.Send(SendBytes);
                Connector.Close();
                ChatBox.BeginInvoke(AcceptDelegate, new object[] { "Я: " + MessageText, ChatBox });         //Изменение поля сообщений (уведомление, что отправлено)       
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        delegate void SendMsg(String Text, RichTextBox Rtb);            //Делегат доступа к контролам формы

        SendMsg AcceptDelegate = (String Text, RichTextBox Rtb) =>      //переменная данного класса (класса делегата)
        {
            Rtb.Text += Text + "\n";
        };
        private void Send_Click_1(object sender, EventArgs e)               //Обработчик кнопки
        {
            new Thread(new ParameterizedThreadStart(ThreadSend)).Start(Message.Text);
        }
        }
    }
}
MinorUfa вне форума Ответить с цитированием
Старый 27.11.2013, 17:27   #2
MinorUfa
 
Регистрация: 18.11.2013
Сообщений: 3
По умолчанию

Помогите пожалуйста, хотя бы совет по построению дайте?
MinorUfa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Схема алгоримта (блок схема) на задачу по Паскалю LINCHAK Помощь студентам 0 22.10.2010 16:56
Блок - схема dt-12 Паскаль, Turbo Pascal, PascalABC.NET 3 26.05.2010 22:03
Блок схема алгоритма программы и схема взаимодействия модулей. Lazio Фриланс 3 02.12.2009 23:10
Подскажите какие порты лучше использовать для чата в локалке Nemiroff Работа с сетью в Delphi 5 04.03.2008 10:36