Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как работать с поименованными каналами под Win95-NT в сети

Delphi , Интернет и Сети , Сеть

Как работать с поименованными каналами под Win95-NT в сети

Реальность из дистрибутива Windows ME - Удаленный доступ к домашней сети.

сервер:


StrPCopy(buff, Edit1.Text);
fPipeHandle := CreateNamedPipe(buff,
Pipe_Access_Duplex or File_Flag_Overlapped,
Pipe_Type_Message or Pipe_ReadMode_Byte or Pipe_Wait,
5, $400, $400, 235, nil);

клиент:


StrPCopy(buff,Edit1.Text);
fFileHandle:=CreateFile(buff,
Generic_Read or Generic_Write,
File_Share_Read or File_Share_Write,
nil,
Open_Existing,
File_Attribute_Normal or File_Flag_Overlapped or Security_Anonymous,
0);
if fFileHandle <> Invalid_Handle_Value then
begin
...

Классическая проблема программирования под Windows!

В этом коде мы работаем с именованными трубами (named pipes) под Windows 95/NT. Именованные трубы - это способ установить общение между процессами или потоками в одном компьютере или через сеть.

Код сервера Сервер создает именованную трубу с помощью функции CreateNamedPipe, которая принимает несколько параметров:

  • buff: Имя трубы.
  • Pipe_Access_Duplex or File_Flag_Overlapped: Это specifies, что труба должна быть able to handle both read and write operations, и она должна поддерживать overlapped I/O (то есть асинхронный ввод-вывод).
  • Pipe_Type_Message or Pipe_ReadMode_Byte or Pipe_Wait: Это sets the pipe type to message-based, allows byte-level reading, and enables waiting for incoming data.
  • 5: Максимальное количество outstanding operations (например, чтения или записи), которые могут быть выполнены на трубе в любое время.
  • $400 и $400: Максимальный размер буфера для входящей и исходящей данных соответственно.
  • 235: Значение тайаута по умолчанию в миллисекундах.
  • nil: Указатель на структуру SECURITY_ATTRIBUTES, которая не используется в этом случае.

Затем сервер использует функцию StrPCopy для копирования текста из редактора (Edit1.Text) в буфер.

Код клиента Клиент создает файловый handle с помощью функции CreateFile, которая принимает несколько параметров:

  • buff: Имя трубы (которое является тем же, что и имя трубы сервера).
  • Generic_Read or Generic_Write: Это specifies, что файловый handle должен allow both read and write operations.
  • File_Share_Read or File_Share_Write: Это sets the sharing mode for the file, allowing multiple processes to read or write to it simultaneously.
  • nil: Указатель на структуру SECURITY_ATTRIBUTES, которая не используется в этом случае.
  • Open_Existing: Открывает существующий файл (то есть именованную трубу).
  • File_Attribute_Normal or File_Flag_Overlapped or Security_Anonymous: Это sets various attributes for the file handle, including normal file attributes, overlapped I/O support, and anonymous security.

Если файловый handle успешно создан, код выполняет некоторые операции (не показанные в этом фрагменте).

Как использовать именованные трубы под Windows 95/NT Чтобы работать с именованными трубами под Windows 95/NT:

  1. Создайте именованную трубу на сервере с помощью CreateNamedPipe.
  2. Подключитесь к именованной трубе от клиента с помощью CreateFile с тем же именем трубы.
  3. Используйте overlapped I/O (например, ReadFile и WriteFile) для отправки и приема данных между процессами.

Некоторые важные заметки:

  • Именованные трубы являются уникальными для процесса или потока, поэтому каждый процесс или поток должен создать свой собственный именованный труб.
  • Именованные трубы могут использоваться для двустороннего общения, но вам нужно использовать overlapped I/O для достижения этого.
  • Функция CreateNamedPipe доступна только в Windows NT 3.51 и более поздних версиях.

Надеюсь, это поможет! Пожалуйста, дайте мне знать, если у вас есть какие-либо дальнейшие вопросы.

В статье описывается работа с поименованными каналами в сети под операционной системой Windows 95-NT, включая создание и использование сервера и клиента для удаленного доступа к домашней сети.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Сеть ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 14:24:34/0.0039899349212646/0