C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 155 - Создаем сервер почтового слота / Win 32 API / Win32 API

Шаг 155 - Создаем сервер почтового слота

Для создания сервера почтового слота используется функция:

HANDLE CreateMailslot
{
	LPCTSTR lpName,				// имя
	DWORD nMaxMessageSize,			// максимальный размер
	DWORD lReadTimeout,			// интервал-тайм аута чтения
	LPSECURITY_ATTRIBUTES lpSecurityAttributes	// информация о безопасности
);

При успешном выполнении мы получим указатель при неуспешном INVALID_HANDLE_VALUE. Обратите внимание на то, что имя должно быть уникальное. Пробуем:

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
	HANDLE hsl=NULL;
	hsl= CreateMailslot("\\\\.\\mailslot\\hello",0,MAILSLOT_WAIT_FOREVER,NULL);
	if (hsl!=INVALID_HANDLE_VALUE)
	{
		cout << "Ok Created mailslot" << endl;
	}
}

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

155_1.gif (3281 b)

Получилось. Давайте дадим умышлено неправильное имя для этого слота:

hsl= CreateMailslot("\\\\.mailslot\\hello",0,MAILSLOT_WAIT_FOREVER,NULL);

Теперь не получается. После создания можно установить операцию чтения. Так как мы указали что ожидание будет до получения информации программа замрет.

if (hsl!=INVALID_HANDLE_VALUE)
{
	cout << "Ok Created mailslot" <<  endl;
	char buffer[255];
	DWORD nBytesRead;
	if (ReadFile(hsl, &buffer, 255, &nBytesRead, NULL)!=0) 
	{
		cout <<  "Ok read" <<  endl;
		cout <<  buffer <<  endl;
	}
}
int i;
cin >> i;

Загрузить проект | | |
Автор Каев Артем.
[AD]