Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
19 / 19 / 16
Регистрация: 13.10.2013
Сообщений: 205
.NET 4.x

Ошибка дискриптора окна

13.04.2016, 17:41. Показов 622. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, выходит ошибка при подключении к серверу.

Код клиента:
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace SendFileMEssage_Prject
{
    public partial class MainChat : Form
    {
        static string userName;
        private const string host = "192.168.1.68";
        private const int port = 7770;
        static TcpClient client;
        static NetworkStream stream;
 
        public MainChat()
        {
            InitializeComponent();
        }
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void настройкиПодключненияToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Settings my = new Settings();
            my.ShowDialog();
        }
        // получение сообщений
        private void ReceiveMessage()
        {
            try
                {
                    byte[] data = new byte[64]; // буфер для получаемых данных
                    StringBuilder builder = new StringBuilder();
                    int bytes = 0;
                    do
                    {
                        bytes = stream.Read(data, 0, data.Length);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    }
                    while (stream.DataAvailable);
 
                    string message = builder.ToString();
                    rtbMessageView.Text += message;//вывод сообщения
                }
                catch
                {
                    rtbMessageView.Text += "Подключение прервано!"; //соединение было прервано
                    Disconnect();
                }
        }
 
        static void Disconnect()
        {
            if (stream != null)
                stream.Close();//отключение потока
            if (client != null)
                client.Close();//отключение клиента
            Environment.Exit(0); //завершение процесса
        }
        // отправка сообщений
        static void SendMessage()
        {
                string message = Console.ReadLine();
                byte[] data = Encoding.Unicode.GetBytes(message);
                stream.Write(data, 0, data.Length);
        }
 
        private void btSend_Click(object sender, EventArgs e)
        {
            SendMessage();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            userName = tbName.Text;
            client = new TcpClient();
            try
            {
                client.Connect(host, port); //подключение клиента
                stream = client.GetStream(); // получаем поток
 
                string message = userName;
                byte[] data = Encoding.Unicode.GetBytes(message);
                stream.Write(data, 0, data.Length);
 
                // запускаем новый поток для получения данных
                Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                receiveThread.Start(); //старт потока
                rtbMessageView.Text += String.Format("Добро пожаловать, {0}", userName);
                SendMessage();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                Disconnect();
            }
        }
    }
}
Ошибка в этом месте выходит
C#
1
2
3
4
5
6
7
8
static void Disconnect()
        {
            if (stream != null)
                stream.Close();//отключение потока
            if (client != null)
                client.Close();//отключение клиента
            Environment.Exit(0); //завершение процесса
        }
Прикрепляю скриншот для подробной ситуации.
Миниатюры
Ошибка дискриптора окна  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2016, 17:41
Ответы с готовыми решениями:

Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак не пингуется... загружается до...

ошибка диалогового окна
Добрый день! Помогите, пожалуйста, решить проблему. При открытии диалогового окна "сохранение/открытие файла" в любой...

Ошибка регистрации окна
Помогите, пожалуйста, найти ошибку. Компилируется нормально, но при выполнении вылетает, не получается зарегистрировать окно #include...

2
19 / 19 / 16
Регистрация: 13.10.2013
Сообщений: 205
13.04.2016, 17:45  [ТС]
Только что выдало ещё одну ошибку
C#
1
Ссылка на строку не ссылается на экземпляр String.
Вот в этой функции
C#
1
2
3
4
5
6
7
// отправка сообщений
        private void SendMessage()
        {
                string message = tbMessage.Text
                byte[] data = Encoding.Unicode.GetBytes(message);//в данной строке
                stream.Write(data, 0, data.Length);
        }
Миниатюры
Ошибка дискриптора окна  
0
19 / 19 / 16
Регистрация: 13.10.2013
Сообщений: 205
13.04.2016, 19:52  [ТС]
Поправил
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace SendFileMEssage_Prject
{
    public partial class MainChat : Form
    {
        static string userName;
        private const string host = "192.168.1.68";
        private const int port = 7770;
        static TcpClient client;
        static NetworkStream stream;
 
        public MainChat()
        {
            InitializeComponent();
        }
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Disconnect();
            Application.Exit();
        }
 
        private void настройкиПодключненияToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Settings my = new Settings();
            my.ShowDialog();
        }
 
        private void btSend_Click(object sender, EventArgs e)
        {
            string message = tbMessage.Text;
            byte[] data = Encoding.Unicode.GetBytes(message);
            stream.Write(data, 0, data.Length);
            tbMessage.Clear();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            userName = tbName.Text;
            client = new TcpClient();
            try
            {
                client.Connect(host, port); //подключение клиента
                stream = client.GetStream(); // получаем поток
 
                string message = userName;
                byte[] data = Encoding.Unicode.GetBytes(message);
                stream.Write(data, 0, data.Length);
 
                // запускаем новый поток для получения данных
                Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                receiveThread.Start(); //старт потока
                //rtbMessageView.Text += StringFormat("Добро пожаловать, {0}", userName);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        // получение сообщений
        private void ReceiveMessage()
        {
            while (true)
            {
                try
                {
                    byte[] data = new byte[64]; // буфер для получаемых данных
                    StringBuilder builder = new StringBuilder();
                    int bytes = 0;
                    do
                    {
                        bytes = stream.Read(data, 0, data.Length);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    }
                    while (stream.DataAvailable);
 
                    string message = builder.ToString();
                    rtbMessageView.Text += message;//вывод сообщения
                }
                catch
                {
                    rtbMessageView.Text += "Подключение прервано!"; //соединение было прервано
                    Disconnect();
                }
            }
        }
 
        private void Disconnect()
        {
            if (stream != null)
                stream.Close();//отключение потока
            if (client != null)
                client.Close();//отключение клиента
            Environment.Exit(0); //завершение процесса
        }
 
        private void MainChat_FormClosing(object sender, FormClosingEventArgs e)
        {
            Disconnect();
        }
    }
}
Не хочет выводить сообщения только что отосланные и если кто-то из других клиентов отправит сообщение выходит ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2016, 19:52
Помогаю со студенческими работами здесь

Ошибка о закрытии окна
При запуске любой программы написанной на opengl появляется ошибка о закрытие окна. К примеру, такой код. #include...

Ошибка создания окна
Почему не создается окна? Два часа не могу найти ошибку :( #include <Windows.h> #include <Windowsx.h> LRESULT...

Ошибка отображения окна
При раз работке приложения на WinApi окна при перерисовки на 100-150 раз начинает неправильно отображаться: заполняет собой весь экран,...

Ошибка при минимизации окна
Ошибка выскакивает при попытке минимизировать окно. Как с ней бороться? Программа вместе с формой скомпилирована как dll функция....

Ошибка при создании окна
Решил переделать код, создающий окно с помощью winapi, существенных изменений не сделал(убрал прослойки в обёртке), но теперь функция...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru