Свой сервер и клиент к нему при помощи TcpListener и TcpClient C#

Не так давно, наткнулся на одну статейку на Хабре, по поводу TcpListener — там с его помощью делался Web-сервер. Поскольку есть некоторые задачи требующие создания подобного приложения, было решено изучить вопрос и попробовать воссоздать увиденное. Переписал что было в публикации в приложение (всегда так делаю прежде чем скачать исходник — лучше для понимания) запустил, не работает. Точнее работает но через раз — как то кривенько и для реально рабочего приложения не годится. Скачал исходники — тоже самое, работает но через раз. Здесь работает через раз — означает что клиент то цеплялся то не цеплялся к серверу. Решил изучить вопрос с ноля. Накопал некоторый материал в интернете, всё это переработал — получилось тестовое рабочее приложение.

Начну с того, что я хотел сделать: пример состоит из двух приложений — сервера и клиента. (Мне Web-сервер не особо интересен, хотя пример можно достаточно просто переделать в него.)

Подробнее

Программируем лазерный считыватель на терминалах сбора данных Cipher (9300) C#

Программируем лазерный считыватель на CipherПришло время написать вторую публикацию по программированию считывающих устройств терминалов сбора данных. В этой публикации я приведу пример программирования лазерного считывателя на терминалах Cipher 9300.
Здесь я приведу простой пример создания программы на Windows CE, которая будет работать со считывателем на терминалах Cipher 93XX. В целом, исходный код данной программы будет основан на примерах, которые приведены в руководстве по программированию, но с небольшим своим усовершенствованием. Вообще удивительно, почему те кто составлял руководство и SDK для разработчиков к этому устройству, не озаботились выложить хотя бы парочку рабочих примеров.

Итак, по порядку. Начнём с того что нам потребуется для разработки.

Как я уже говорил, нам потребуется SDK, по сути нам будут нужны 3 библиотеки, две под .NET, и одна для считывателя которая просто должна быть с проектом: Reader_Ce_Net.DLL, SystemApi_Ce_Net.DLL, ReaderDll_CE.dll.

Подробнее

Один contextMenuStrip для разных форм C#

Вариант размещения одного contextMenuStrip на разных формах для разных элементов.

В основном пространстве имен добавляем класс с contextMenuStrip:

namespace TestContextMenu
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

    }
    static class Menushki
    {
        public static ContextMenuStrip menu1 = new ContextMenuStrip();
       
        
    }
}


Подробнее

Динамическое создание элементов отображения и вывод в них информации из базы данных C#

Здесь я приведу пример динамического создания текстовых полей TextBox, с выводом в эти поля значений из источника данных.

Сразу к делу:

1. Задаем некоторые переменные и пару массивов.

DataSet ds = new DataSet(); //Создаем источник данных.
TextBox[] tb = new TextBox[100];//Массив из 100 текстбоксов, можно и списком воспользоваться, но пусть будет так.
Label[] lb = new Label[100]; //Массив подписей к полям.
int row_num = 0; //Номер выбранной записи в таблице.
Подробнее

Программируем лазерный считыватель на терминалах сбора данных Motorola (Symbol) C#

Давно хотел написать такое руководство к действию, но как-то всё руки не доходили, и вот наконец написал, всего делов то было…
Любители впихнуть везде и всюду 1С-ку (даже на терминал) с использованием DataWedge (это такая утилита для отправки того что считал сканер в буфер клавиатуры только специализированная для ТСД Symbol) могут дальше не читать, а заниматься и дальше тем что больше нравится. Обращать в свою веру никого не буду :).
Итак, что же я здесь продемонстрирую?.. Я приведу маленький пример того, как задействовать считывающее устройство на терминале сбора данных (Symbol Motorola) из вашего приложения, расскажу что для этого необходимо и приведу пример кода.

Подробнее

Многострочный ListView для .NET CF C#

Давно была необходимость в таком компоненте, и вот наконец дошли руки. Первая версия готова. Данный компонент, это ListView для мобильных устройств на базе Windiws Mobile в котором можно задавать количество строк в позиции (до 10 строк). Предназначен в первую очередь для современных устройств с большими экранами и довольно мощной аппаратной начинкой, но будет работать и на слабеньких устройствах с разрешением экрана 240X320, при этом ширина строк меньше но количество строк удваивается (для EGA — возможно только четное количество строк, задав 5 получите 10, задав 1 получите 2; 1,3 или 5 строк быть не может). В качестве фона используется произвольное изображение.

Скриншоты работы компонента:
 










Скачать компонент:
Скачать файл: graphlistview.rar [36.88 Kb] (cкачиваний: 3)  

Для работы компонента, распаковываем архив, создаем новый SmartDeviceProject в VisualStudio, на панели компонентов (Toolbox) нажимаем правой кнопкой мыши, выбираем Choose Toolbox Items (ждем пока загрузится, иногда тормозит). В открывшемся окне нажимаем Browse, и ищем наш компонент GraphListView.dll — находим, выбираем и добавляем.
После этого компонент должен появиться на панели компонентов и его можно использовать.

Описание компонента, пример работы и исходный код Здесь.

P.S. Приветствуются пожелания в развитии компонента, а также найденные неточности и ошибки.

Подробнее

Многострочный ListView для .NET CF (описание, исходный код и пример работы). C#

Здесь я приведу описание основных свойств и методов компонента GraphListView.

Самое главное, как указать источник данных:

//1. Бросаем на форму GraphListView
//связываем компонент с данными и обновляем его.
graphListView1.GraphListDataSet = new DataSet();
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\dataset.xml";
//В данном случае источник данных загрузили из XML файла.
graphListView1.GraphListDataSet.ReadXml(path);

//Указываем наименование таблицы в источнике данных
graphListView1.DataTableName = "Table";
//Указываем наименование поля таблицы в котором передается значение
graphListView1.FieldValue = "ID_DOCHEAD";
//Указываем наименование поля таблицы в котором передается отображаемое наименование
graphListView1.FieldDisplay = "NAME";

//Количество строк в позиции, можно не указывать по умолчанию 2;
//Может принимать значение от 1 до 10;
graphListView1.RowCountByPos = 2;
//Цвет текста, можно не указывать по умолчанию Белый;
graphListView1.FontColor = Color.Red;

//Обязательная функция после применения всех обязательных параметров выше.
//Заполнит и отобразит Список.
graphListView1.RefreshList();
Подробнее

Определение платформы в .NET CF на мобильном устройстве C#

Понадобилось мне определять автоматически какая версия Win CE установлена на устройстве, я конечно был удивлен в конце результатом, но об этом позже. Сначала опишу метод получения информации о платформе… Получать информацию будем при помощи API функции SystemParametersInfo, ничего особенного все как обычно, сразу перехожу к примеру.

Подробнее

Работа с базой данных FireBird и InterBase из C#

Часто сталкиваюсь с необходимостью взаимодействия различных приложений написанных на .NET с базами данных FireBird и InterBase. Поэтому решил написать пример для памяти, чтобы в следующий раз не искать по собственным исходникам а быстренько заглянуть сюда. Возможно кому-то тоже пригодится.

Итак, чтобы подключиться к базе данных нам потребуется Коннектор: «FirebirdClient-2.5.0-Alpha2.msi» — в моём случае такой, возможно уже есть новее. (вбиваете в поисковике — найдётся).

После установки в Program Files появится папочка FirebirdClient 2.0 — в ней лежат необходимые библиотеки. Добавляем оттуда в наш проект через «Add Reference» библиотеку: FirebirdSql.Data.FirebirdClient.dll

Подробнее

Рисование Красивых линий в Windows Mobile на C#

Здесь я приведу пример кода для рисования при помощи GDI+ для Windows Mobile. Хороший человек Алекс Фейнман представил замечательную библиотеку OpenNETCF.GDIPlus для рисования очень красивых линий с использованием разнообразных кистей и заливок. Библиотека доступна с исходным кодом и позволяет делать удивительные вещи, самыми полезными (на мой взгляд) из которых являются возможность рисования прозрачных объектов (Transparent) и сглаживания краёв и объектов, что делает линии значительно более привлекательными.

Подробнее