Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
29 / 18 / 1
Регистрация: 09.09.2010
Сообщений: 411
1

sockets в windows Forms

09.09.2010, 19:36. Показов 4702. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!!!

Мне необходимо создать серверное приложение, которое должно открыть сетевой сокет и ожидать подключение к нему клиентского приложения! Так вот у меня проблема, когда сокет уже открыт и ожидает подключение, то приложения зависает!!!! внизу код, посмотрите что не так!!!! Спасибо!!!!!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
 
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        
        
        
        public Form1()
        {
            InitializeComponent();
          
        }
    
        //Запуск сервера
 
        private void startServer_menu_Click(object sender, EventArgs e)
        {
          
           StartSocketServer();
           
        }
 
    
       
        //Метод для запуска сервера
        void StartSocketServer()
        {
             IPHostEntry iphost = Dns.Resolve("localhost");
            IPAddress ipaddr = iphost.AddressList[0];
            IPEndPoint ipEndPoint = new IPEndPoint(ipaddr, 1100);
 
            //Создание сокета TCP/IP
            Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            
 
            //Назначаем сокет локальной точки и слушаем входящие сокеты
 
            try
            {
                sender.Bind(ipEndPoint);
                sender.Listen(10);
 
                //Начинаем слушать соединения
                while (true)
                {
                    string waiting = "Подождите соединения на порте " + ipEndPoint;
                   lbl_info.Text = waiting;
                  MessageBox.Show("Подождите соединения на порте " + ipEndPoint);
 
                    //Программа приостанавливаеться, ожидая входящее соединения
                    Socket handler = sender.Accept();
                    string data = null;
 
                    //дождались клиента, который пытался соединиться
                    while (true)
                    {
                        byte[] bytes = new byte[1024];
                        int byteRec = handler.Receive(bytes);
                        data +=Encoding.ASCII.GetString(bytes, 0, byteRec);
 
 
                        if (data.IndexOf("<The end>") > -1)
                        {
                            break;
                        }
                    }
                    //показываем данные на консоли
                    MessageBox.Show("Text received: " + data);
                    string theReply = "Thank for those " +
                        data.Length.ToString() + " characters ...";
                    byte[] msg = Encoding.ASCII.GetBytes(theReply);
                    handler.Send(msg);
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
 
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
 
        
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2010, 19:36
Ответы с готовыми решениями:

Будут ли работать приложения написанные на Windows Forms на Windows 8
Будут ли работать приложения написанные на Windows Forms на Windows 8? И собсно еще вопрос, вы...

Как переделать Windows Forms приложение в Windows Service с UI?
Здравствуйте, уважаемые посетители форума! Вопрос такой. У меня есть приложение C# Win Forms с...

Перенос приложения Windows Forms в Windows Market
Как с минимальными затратами времени перенести десктопное приложение на магазин Windows ? Есть ли...

Код для Windows Forms не работает в Web Forms?
В том году я делал лабораторки по Winforms. Естественно, они все у меня сохранились, и я полез в их...

6
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
09.09.2010, 21:09 2
Потому что все делается в одном потоке. Для подобных циклов необходимо создавать отдельный поток.
0
29 / 18 / 1
Регистрация: 09.09.2010
Сообщений: 411
09.09.2010, 23:31  [ТС] 3
а как это возможно сделать??????????
0
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
09.09.2010, 23:34 4
Всё правильно. Приложение ожидает подключений и не обрабатывает события
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
09.09.2010, 23:45 5
angol, в данной теме у меня как раз реализовано ожидание в отдельном потоке: https://www.cyberforum.ru/csha... 13231.html
1
29 / 18 / 1
Регистрация: 09.09.2010
Сообщений: 411
09.09.2010, 23:57  [ТС] 6
Цитата Сообщение от body90 Посмотреть сообщение
Всё правильно. Приложение ожидает подключений и не обрабатывает события
так то оно так, но когда закрываешь приложения то выскакивает следующее окно


Добавлено через 2 минуты
Цитата Сообщение от kirill29 Посмотреть сообщение
angol, в данной теме у меня как раз реализовано ожидание в отдельном потоке: https://www.cyberforum.ru/csha... 13231.html
спасибо!!!!
0
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
10.09.2010, 00:06 7
Цитата Сообщение от angol Посмотреть сообщение
Сообщение от body90
Всё правильно. Приложение ожидает подключений и не обрабатывает события
так то оно так, но когда закрываешь приложения то выскакивает следующее окно
Оно и должно выскакивать
0
10.09.2010, 00:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2010, 00:06
Помогаю со студенческими работами здесь

Windows.Forms - Процедуры, цикл for и System.Windows.Forms.Button
Доброго времени суток. Есть WinForms программа: ... private ClickedButtonId, ClickedButtonX,...

Где в настройках включить поддержку Windows Sockets
При создании проекта забыл поставить галочку на Windows Sockets. Где в настройках проекта можно это...

Выражение типа "System.Windows.Forms.Control" не может быть выражением типа "System.Windows.Forms.Menu"
Перевёл проект с версии 2008 на версию 2010 Наткнулся при компиляции на кучу не объявленных...

Установить курсор из файла *.cur имея Windows.Forms и Windows.Input
Имеется форма на Windows.Forms. Нужно заменить стандартный курсор, на курсор расположенный например...

Создание приложения Windows Forms на C++/CLI в Windows 8
Добрый день! Нужно создать windows приложение на Си++, стоит 8, на 2013 много заморочек с созданием...

Windows sockets приложения с сокетами, написание приложения сервер-клиент
Написать программу-сервер и программу - клиент. Клиент читает файл, пересылает его серверу. Сервер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru