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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2014, 22:15   #1
Vla00
 
Регистрация: 30.04.2012
Сообщений: 5
По умолчанию forma + потоки

Сказали создать socks клиент сервер. клиент принимает все ссылки и далее передаёт их серверу. У меня вопрос: я знаю что сервер нужно сделать многопоточный, а вот насчёт клиента неуверен, как вы думаете нужно его создавать многопоточным или нет. И ещё один вопрос: я создал клиент, но когда запускаю я немогу нажать кнопку что-бы его остановить...
Главную часть клиента не предоставляю, да бы не захломлять лишним кодом.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;

namespace client
{
    public partial class Form1 : Form
    {
        public string enter_IP_server = null;
        public string data = null;

        public byte[] message_brau = new byte[256];
        public byte[] message = new byte[256];


        public Form1()
        {
            InitializeComponent();
            stop.Enabled = false;

            ASCIIEncoding encoding = new ASCIIEncoding();

        }

        private void enter_IP_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            enter_IP_server = enter_IP.Text;

            try
            {
                IPAddress localAddress = IPAddress.Parse("127.0.0.1");
                TcpListener listener = new TcpListener(localAddress, 2010);

                listener.Start(1);

                if (enter_IP_server.Length == 0)
                {
                    Error.EnterIP();
                }
                else
                {
                    start.Enabled = false;
                    stop.Enabled = true;

                    while (true)
                    {
                        TcpClient client = new TcpClient(enter_IP_server, 2010);
                        TcpClient client_brau = listener.AcceptTcpClient();

                        client.Close();
                        client_brau.Close();
                    }
                }
            }
            catch (Exception w)
            {
                Error.Connect(w);
            }
            button2_Click(sender, e);

        }

        public void button2_Click(object sender, EventArgs e)
        {
            start.Enabled = true;
            stop.Enabled = false;
        }

        public void ClickWorks(object sender, EventArgs e)
        {
            start.Enabled = true;
            stop.Enabled = false;
        }

    }

   public class Error : Form
    {
       static public void EnterIP()
       {
           MessageBox.Show("Error IP addres server", "Error");
       }
       
       static public void Connect(Exception w)
       {
           MessageBox.Show(w.Message, "Error");
       }

    }
}
Я понимаю что из-за бесконечного цикла я немогу остановить клиента. как мне это исправить. нужно что-бы клиент всё время работал. button2_Click - это остановка клиента, button1_Click - запуск клиента

Последний раз редактировалось Stilet; 16.03.2014 в 23:12.
Vla00 вне форума Ответить с цитированием
Старый 16.03.2014, 22:48   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Вынести бесконечный цикл в отдельный поток.
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 16.03.2014, 23:44   #3
Vla00
 
Регистрация: 30.04.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Вынести бесконечный цикл в отдельный поток.
Можете мне в этом помочь? А то я как-то с потоками пока не силён.
Vla00 вне форума Ответить с цитированием
Старый 17.03.2014, 10:54   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Гуглить принципиально лень? Первая, блин, ссылка http://lmgtfy.com/?q=C%23+%D1%81%D0%...82%D0%BE%D0%BA
Код:
new Thread(YourFunctionName).Start()
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки. Закрываются все потоки при ошибке в одном. Son Общие вопросы Delphi 11 01.11.2013 09:32
Forma Delphi 7 Денис999 Помощь студентам 2 18.04.2011 10:28
Forma Delphi 7 Денис999 Общие вопросы Delphi 11 17.04.2011 20:23
kontaktnaya forma atur PHP 1 23.01.2011 14:46
Не запускается макрос Forma Romuald Microsoft Office Excel 3 03.03.2009 12:41