Сокеты И Многопоточность

Тема в разделе ".NET - Общие вопросы по языкам", создана пользователем 123456789igor, 15 сен 2014.

  1. 123456789igor

    123456789igor Active Member

    Регистрация:
    12 янв 2011
    Сообщения:
    29
    Симпатии:
    0
    Здравствуйте. Есть у меня такая проблема. Никак не могу понять как организовать выполнение 2х различных задач параллельно.
    Есть клиент-серверное приложение. 1 метод отвечает за ожидание подключения и прием данных, 2ой метод отвечает за действия над принятыми данными.
    Выглядит это так
    Код (Text):
    private async void Form1_Load(object sender, EventArgs e)
    {
    while (true)
    {
    new Thread(() => Run()).Start();
    }
    while (true)
    {
    if (massOfWords[0] != "")
    break;
    }
    WorkWithDB db = new WorkWithDB();
    new Thread(() =>db.isLogonOrRegistration(massOfWords)).Start();

    }
    public async Task Run()
    {
    massOfWords = await StartServer();
    }

    public async Task<String[]> StartServer()
    {
    Socket _server;
    IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
    IPAddress ipAddress = ipHostInfo.AddressList[0];
    //ServerSocket ss = new ServerSocket(ipAddress, 11000);
    _server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    _server.Bind(new IPEndPoint(ipAddress, 11000));
    _server.Listen(20);
    ServerSocket ss = new ServerSocket();
    string result = await ss.Accept(_server);
    Console.WriteLine(result);
    _server.Close();
    _server.Dispose();
    return result.Split('|');
    }
    В результате хочу получить что-то вроде: запускаем приложение, метод Run запускается в новом потоке(выполнение программы идет дальше) программа крутится в цикле, пока какой-то клиент не подключится и не передаст данные. В случае если что-то получили запускаем метод isLogonOrRegistration в ещё 1ом потоке, при этом поток, в котором Run, работает и ждет следующего подключения. Никак не могу понять как это сделать
    Если у вас есть идея как эту логику реализовать по другому- напишите пожалуйста.
    собственно сама логика: Этот кусок кода- это сервер. Клиент вводит креды и отправляет их серверу(сервер может обрабатывать подключения множества клиентов) далее сервер проверяет верные креды ли ввел пользователь. Никак не получается сделать это параллельно. Прошу совета.
     
Загрузка...
Похожие Темы - Сокеты Многопоточность
  1. areostar
    Ответов:
    1
    Просмотров:
    223
  2. iosif88

    Сокеты

    iosif88, 17 дек 2009, в разделе: .NET
    Ответов:
    1
    Просмотров:
    1.714
  3. acorn
    Ответов:
    13
    Просмотров:
    4.840
  4. Баламут
    Ответов:
    2
    Просмотров:
    3.123
  5. Баламут
    Ответов:
    0
    Просмотров:
    2.521

Поделиться этой страницей