Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Порядок выполнения. Сделать два потока

Читайте также:
  1. I. Задания для обязательного выполнения
  2. I. Задания для обязательного выполнения
  3. I. Задания для обязательного выполнения
  4. II. Порядок заповнення граф декларації громадянином
  5. II. Порядок и условия предоставления целевого жилищного займа для приобретения жилого помещения (жилых помещений) под залог приобретаемого жилого помещения (жилых помещений)
  6. II. Порядок поставки
  7. II. Порядок формирования экспертных групп, организация экспертизы заявленных на Конкурс проектов и регламент работы Конкурсной комиссии

Сделать два потока. Первый осуществляет запись данных в СОМ – порт, второй – чтение. Синхронизацию осуществить с использованием блокировки чтения – записи по аналогии с примером их использования.

Задание 24

Цель работы — сделать периодический таймер. При срабатывании таймера выполнить обмен данными по СОМ – порту

Порядок выполнения

Процесс создания и работы таймера реализовать по аналогии с приведенным примером работы таймера. При его срабатывании необходимо осуществить обмен данными по СОМ – порту.

Задание 25

Цель работы — создать сервер, который обрабатывает сообщения, и при получении сообщения от клиента выполняет обмен данными по СОМ - порту.

Порядок выполнения

Процесс создания и работы сервера реализовать по аналогии с приведенным примером его работы.

Задание 26

Цель работы — с оздать клиента, который выполняет обмен данными по СОМ – порту и отправляет серверу сообщение и принятым массивом данных. Сервер должен отобразить полученный массив и ответить клиенту.

Порядок выполнения

Процесс создания и работы клиента реализовать по аналогии с приведенным примером его работы.

Задание 27

Цель работы — для примера сервера определить тип сообщения, принимаемого от клиента.

Порядок выполнения

Сообщения от клиента поступает в следующем виде

typedef struc{

int mesType; //тип сообщения

char msg[512];//сообщение

}ClientMessageT

ClientMessageT msg;

Необходимо сделать так, чтобы сервер мог принимать ограниченной число клиентов Max_Client. Отвечать клиентам через 5сек - clients[i].timeout = 5сек.

struct {

int in_use;

int rcvid;

int timeout;

}clients [Max_Client];

//просмотреть список клиентов

for(int i = 0; i < Max_Client; i++){

if(clients[i].in_use){

clients[i].timeout -= 1;

if(clients[i].timeout <= 0){

//ответить клиенту. Вызов функции MsgReply с параметрами clients[i].rcvid, EOK,msg. Значение msg.mesType = MES_CLIENT

clients[i].in_use = 0;//освободить клиента

}

}

}

Прием сообщений сервера необходимо реализовать следующим образом:

bool fins = false; //

switch(msg.mesType){

case WM_WAIT_DATA:{

//поиск свободного места для приема клиентов

for(int i = 0; i < MAX_CLIENT; i++){

if(!clients[i].in_use){

clients[i].in_use = 1;

clinets[i]. rcvid = rcvid;

clients[i].timeout = 10;

fins = true;

}

if(!fins){// к серверу подключено максимальное количество клиентов

//ответить клиенту. Вызов функции MsgReply с параметрами clients[i].rcvid, EOK,msg. Значение msg.mesType = M_MAX_CLIENT

}

break;

}

}

Значения переменной msg.mesType определяются через директиву #define. Например #define M_MAX_CLIENT 5 и устанавливаются одинаковыми для клиента и сервера.

Контрольные вопросы

1. Как применяется метод барьеров при работе с СОМ-портом?

2. Как применятся мьютексы при работе с СОМ-портом?

3. В каких случаях применяют блокировки чтения-записи?

4. Какие основные действия выполняются при работе с СОМ-портом?

5. Какие основные функции используются при работе с СОМ-портом?

6. Как организуется периодические обмены данными по СОМ-порту?

7. Как используется метод присоединение при работе с СОМ-портом?


 


Дата добавления: 2015-12-08; просмотров: 51 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.007 сек.)