Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework

Тут можно читать онлайн Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование КПК и смартфонов на .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2007
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-91180-270-7
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework краткое содержание

Программирование КПК и смартфонов на .NET Compact Framework - описание и краткое содержание, автор Александр Климов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?

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

Книга предназначена для начинающих программистов.

Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование КПК и смартфонов на .NET Compact Framework - читать книгу онлайн бесплатно, автор Александр Климов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

За инфракрасное соединение отвечает специальный класс IrDAClient, который может выступать и в роли сервера, и в роли клиента. Данный класс входит в библиотеку System.Net.IrDA.dll. Таким образом, при использовании класса IrDAClientнеобходимо добавить в проект ссылку на указанную библиотеку.

Для чтения и передачи данных используется метод GetStream, работающий с основным потоком данных. Компьютер-клиент должен знать имя устройства, с которым нужно установить связь. Программа может поочередно опросить все доступные устройства и выбрать нужное устройство для связи. Алгоритм подключения устройства к инфракрасному порту другого устройства приведен далее.

1. Создать новый экземпляр класса IrDAClient.

2. Получить список доступных устройств с помощью метода IrDAClient.DiscoverDevices. Можно ограничить количество опрашиваемых устройств при помощи параметра maxDevices. Метод DiscoverDevicesвозвращает массив объектов IrDADeviceInfo.

3. Нужно исследовать каждый объект IrDADeviceInfoиз полученного массива, чтобы найти необходимое устройство для связи.

4. Если подобное устройство найдено, то при помощи метода IrDAClient.Connectпроизводится соединение. При этом необходимо указать имя службы

Создание программы для работы с ИК-связью

В этом разделе будет создано приложение, которое будет соединяться с другим устройством и пересылать ему текстовый файл. Прежде всего нужно создать новый проект IrDA_CS. На форме надо разместить три кнопки, список и строку состояния.

Кнопка butFindDevsпредназначена для поиска устройств, кнопка butSend— для отправки текстового сообщения, а кнопка butReceiveслужит для приема сообщения. В списке listBox1будет отображаться информация об обнаруженных устройствах, а в строке состояния будут отображаться сообщения о производимых операциях. Для передачи данных и работы с файлами нам необходимо импортировать несколько пространств имен, как это показано в листинге 12.1.

Листинг 12.1

Imports System.Net

Imports System.IO

Imports System.Net.Sockets

Для работы с инфракрасной связью необходимо подключить к проекту класс IrDAClient. Для этого выполним команду меню Project►Add Reference и в диалоговом окне выберем пункт System.Net.IrDa.

Теперь нужно объявить переменные на уровне класса, как показано в листинге 12.2

Листинг 12.2

private IrDAListener irListen;

private IrDAClient irClient;

private IrDAEndPoint irEndP;

private IrDADeviceInfo[] irDevices;

string fileSend;

string fileReceive;

string irServiceName;

int buffersize;

В конструкторе формы надо создать экземпляр класса IrDAClient, задать имена файлов для приема и отправки сообщения, указать имя службы, установить размер буфера для передаваемого файла и также временно сделать недоступными кнопки для отправки и посылки сообщения. Соответствующий код приведен в листинге 12.3.

Листинг 12.3

public Form1() {

InitializeComponent();

irClient = new IrDAClient();

// Файлы, предназначенные для отправки и приема

fileSend = ".\\My Documents\\send.txt";

fileReceive = ".\\My Documents\\receive.txt";

// Задаем имя для службы IrDA

// Это может быть любое слово

// Другие устройства для примера должны использовать это же

// слово

irServiceName = "IrDAFtp";

// Устанавливаем максимальный размер буфера для передаваемого

// файла

buffersize = 256;

// Делаем недоступными кнопки отправки и посылки сообщений

// до тех пор, пока не будут обнаружены устройства

butSend.Enabled = false;

butReceive.Enabled = false;

}

Обнаружение устройств

Теперь надо написать код для кнопки butFindDevs, предназначенной для обнаружения устройств. При тестировании примера необходимо направить инфракрасные порты устройств друг на друга. Код, ответственный за выполнение этой задачи, приведен в листинге 12.4.

Листинг 12.4

private void butFindDevs_Click(object sender, EventArgs e) {

// Ищем доступные устройства с инфракрасной связью

// и помещаем их в список

// Поиск не более трех доступных устройств

irDevices = irClient.DiscoverDevices(2);

// Если устройства не найдены, то выводим сообщение

if (irDevices.Length == 0) {

MessageBox.Show("Устройства с ИК-портами не обнаружены!");

return;

}

// Перечисляем массив IrDADeviceInfo

// и выводим информацию о каждом устройстве в список

string device;

int ID;

listBox1.Items.Clear();

foreach (IrDADeviceInfo irDevice in irDevices) {

ID = BitConverter.ToInt32(irDevice.DeviceID, 0);

device =

ID.ToString() + " " + irDevice.DeviceName + " " + irDevice.CharacterSet +

" " + irDevice.Hints;

listBox1.Items.Add(device);

}

listBox1.SelectedIndex = 0;

if (irDevices.Length > 0)

statusBar1.Text = irDevices.Length.ToString() + " устройств(а)";

// Делаем доступными кнопки для отправки и посылки сообщения

butSend.Enabled = true;

butReceive.Enabled = true;

}

Передача данных

Код для отправки и посылки файлов приведен в листинге 12.5.

Листинг 12.5

private void butSend_Click(object sender, EventArgs e) {

// Открываем файл для отправки и получаем его поток

Stream fileStream;

try {

fileStream = new FileStream(fileSend, FileMode.Open);

} catch (Exception exFile) {

MessageBox.Show("Не могу открыть " + exFile.ToString());

return;

}

// Создаем IrDA-клиент с установленным именем службы.

// которое должно совпадать с именем службы на другом

// IrDA-клиенте

try {

irClient = new IrDAClient(irServiceName);

} catch (SocketException exS) {

MessageBox.Show("Ошибка сокета: " + exS.Message +

" - Вы щелкнули на кнопке Получить на другом устройстве?");

return;

}

// Получим поток

Stream baseStream = irClient.GetStream();

// Получим размер отправляемого файла

// и запишем это значение в поток

byte[] length = BitConverter.GetBytes((int)fileStream.Length);

baseStream.Write(length, 0, length.Length);

// Создаем буфер для чтения файла

byte[] buffer = new byte[buffersize];

// Показываем число отправленных байт

int fileLength = (int)fileStream.Length;

statusBar1.Text = "Отправлено " + fileLength + " байт";

// Читаем файловый поток в базовом потоке

while (fileLength > 0) {

int numRead = fileStream.Read(buffer, 0, buffer.Length);

baseStream.Write(buffer, 0, numRead);

fileLength -= numRead;

}

fileStream.Close();

baseStream.Close();

irClient.Close();

statusBar1.Text = "Файл отправлен";

}

private void butReceive_Click(object sender, EventArgs e) {

// Создаем поток для записи файла

Stream writeStream;

try {

writeStream = new FileStream(fileReceive, FileMode.OpenOrCreate);

} catch (Exception) {

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Климов читать все книги автора по порядку

Александр Климов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование КПК и смартфонов на .NET Compact Framework отзывы


Отзывы читателей о книге Программирование КПК и смартфонов на .NET Compact Framework, автор: Александр Климов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x