Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 14

Проблема с блокировкой файла

21.05.2021, 19:10. Показов 803. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день создал прогу которая делает скрины и отправляет на сервер через tcp, сервер вставил в winforms после того как массив байтов доходит до сервера я их сохраняю в MemoryStream и затем собираю изображение и потом вывожу на пикчеребокс и так непрерывно, получилось что то вроде удаленного рабочего стола но только теперь когда через exe запускаю клиента то все норм работает а в vs выдает вот такую ошибку, может я неправильно ресурсы освобождаю не знаю из-за чего вот мой код клиента с серваком все норм. Ошибка: Серьезность Код Описание Проект Файл Строка Состояние подавления
Предупреждение не удалось скопировать "obj\Debug\testClient.exe" в "bin\Debug\testClient.exe". Повторная попытка 1 начнется через 1000 мс. Процесс не может получить доступ к файлу "bin\Debug\testClient.exe", так как этот файл используется другим процессом. "testClient.exe (15368)" блокирует этот файл testClient


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
//Клиент
static void Main(string[] args)
        {
 
            //рабочий вариант строки
            const string ip = "127.0.0.1";
            const int port = 8888;
            int l = 1;
            while (true)
            {
                var tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);
                var tcpSoket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                
                try
                {
                   // Thread.Sleep(200);
 
                    MemoryStream ms = new MemoryStream();
 
                    Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
                    Graphics graphics = Graphics.FromImage(printscreen as Image);
                    graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
                    printscreen.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] bytes = ms.ToArray();
                    tcpSoket.Connect(tcpEndPoint); // соединение с серваком
                    tcpSoket.Send(bytes);
                    ms.Dispose();
                    ms.Close();
                }
                catch (Exception)
                {
 
                    
                    //continue;
                }
 
                var buffer = new byte[256]; // выдется массив байтов для принятия
                var size = 0;
                var answer = new StringBuilder(); // перекодировщик байтов в строку 
                do
                {
                    size = tcpSoket.Receive(buffer); //число байтов в массиве
                    answer.Append(Encoding.UTF8.GetString(buffer, 0, size)); // перекодировка байтов в строку
                }
                while (tcpSoket.Available > 0);
                
 
                
             
 
                tcpSoket.Shutdown(SocketShutdown.Both);
                tcpSoket.Close();
                
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2021, 19:10
Ответы с готовыми решениями:

Проблема с блокировкой доступа по IP через htaccess
В общем такая проблема. Есть .htaccess следующего содержания Order Deny,Allow Deny from all Allow from X, Y Где X и Y - разные...

Проблемы с блокировкой <select>
Всем привет!!! У меня в форме есть два поля типа &lt;select&gt;&lt;option&gt;&lt;/option&gt;&lt;/select&gt;. Мне необходимо написать скрипт, который...

Проблемы с блокировкой конфигурации в 1С 8
Привет! возникла следующая проблема: при редактировании интерфейсов нет полного доступа на изменение вкладок и т.п., т.к. всё заблоктровано...

1
312 / 143 / 77
Регистрация: 23.08.2015
Сообщений: 455
21.05.2021, 20:31
https://metanit.com/sharp/net/3.2.php

А, если обернуть в Task, то и UI сервера не будет висеть:
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
int port = 8005; // порт для приема входящих запросов
 
            // получаем адреса для запуска сокета
            IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
 
            // создаем сокет
            Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            try
            {
                // связываем сокет с локальной точкой, по которой будем принимать данные
                listenSocket.Bind(ipPoint);
 
                // начинаем прослушивание
                listenSocket.Listen(10);
 
                MessageBox.Show("Сервер запущен. Ожидание подключений...");
 
                Task.Run(() =>
                {
                    while (true)
                    {
                        Socket handler = listenSocket.Accept();
                        // получаем сообщение
                        StringBuilder builder = new StringBuilder();
                        int bytes = 0; // количество полученных байтов
                        byte[] data = new byte[256]; // буфер для получаемых данных
 
                        do
                        {
                            bytes = handler.Receive(data);
                            builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                        }
                        while (handler.Available > 0);
 
                        MessageBox.Show(DateTime.Now.ToShortTimeString() + ": " + builder.ToString());
 
                        // отправляем ответ
                        string message = "ваше сообщение доставлено";
                        data = Encoding.Unicode.GetBytes(message);
                        handler.Send(data);
                        // закрываем сокет
                        handler.Shutdown(SocketShutdown.Both);
                        handler.Close();
                    }
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2021, 20:31
Помогаю со студенческими работами здесь

Написание браузера с блокировкой элементов
Здраствуйте, нужна помошь по написанию своего браузера с возможностями блокировки елементов. (Почти как в адблок) Как ето сделать с...

Чертеж замка с блокировкой ригеля
Из за некоторой сложившиеся ситуации нужно в существующий замок внести конструктивные изменения. В замок планирую поставить доп. миханику...

Управляемый коммутатор с блокировкой рекламы
Например в циске есть функция блокирования трафика по заголовку пакетов. И вот меня мучает рекламы в интернете хочется ее порезать но не на...

Обработка timeout и функции с блокировкой
Столкнулся с такой проблемой. Есть функция которая берет данные с очереди. Она блокирующая. Находиться в закрытой библиотеке, так что...

Выпадающий список с блокировкой от ручного ввода
Всем Доброго времени суток! Столкнулся со следующей трудностью. Имеется ячейка с выпадающим списком. Список реализован...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru