Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Именованные каналы? Что это такое? 
V
    Опции темы
Alca
Дата 3.12.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Именованные каналы? Что это такое?  smile 
Чем отличается от TCP/IP?

Добавлено через 3 минуты и 33 секунды
Named Pipes – именованные каналы

Протокол named pipes (именованные каналы) был разработан фирмой Microsoft несколько лет тому назад. В named pipes поддерживаются два режима: локальный и удаленный (дистанционный). Протокол local named pipes применяется в случаях, когда и клиент, и сервер находятся на одном и том же компьютере, а remote named pipes применяется, когда клиент и сервер находятся на разных компьютерах. Если соединение установлено через named pipes, сетевые утилиты SQL Server распознают, как оно осуществлено – с помощью локальных именованных каналов (local named pipes) или же с помощью удаленных (дистанционных) именованных каналов (remote named pipes).

Именованные каналы – это клиентский протокол, применяемый по умолчанию, и он является протоколом, применяемым по умолчанию в операционных системах Windows NT 4 Server и Windows 2000. В операционных системах Microsoft Windows 95 и Microsoft Windows 98 именованные каналы применяться не могут. В этих системах на стороне сервера применяются протоколы TCP/IP, multiprotocol и shared memory. Хотя протокол "именованные каналы" работает эффективно, он обычно не используется в больших сетях, потому что он не поддерживает маршрутизацию и шлюзы. Также не рекомендуется его применение на медленных сетях, т.к. по сравнению с другими протоколами, например, TCP/IP, для него требуется передача значительно большего объема информации между сервером и клиентом.

Это сообщение отредактировал(а) Alca - 3.12.2007, 15:55


--------------------
PM WWW ICQ Skype Jabber   Вверх
_EXN_
Дата 3.12.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Разработаный микроцефалами ??  smile 
PM MAIL   Вверх
Alca
Дата 3.12.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Наверное (SQL Server)

Это сообщение отредактировал(а) Alca - 3.12.2007, 19:04


--------------------
PM WWW ICQ Skype Jabber   Вверх
Олег2005
Дата 4.12.2007, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(Alca @  3.12.2007,  15:54 Найти цитируемый пост)
(дистанционных) именованных каналов (remote named pipes).

Поиск ни по гуглям, ни по MSDN ничего не дает по данному предмету smile 
Просто потому что remote named pipes по жизни не существуют smile 
И соответственно для сетевого взаимодействия между двумя удаленными компами применяться не могут - по жизни
это средство IPC- Inter Process Communication - те взаимодействие между процессами - внутри одной и той же машины
PM MAIL WWW MSN   Вверх
Alca
Дата 4.12.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Именованные каналы (PIPE) 


Именованные каналы PIPE используются для гарантированной передачи данных по сети. Создать именованный канал можно только на NT, в операционной среде Windows 95 можно использовать именованный канал только со стороны клиента. Поэтому для проверки данных примеров вам нужен NT. Можно сказать, что это выделенная линия для обмена данными между процессами. В NT можно посмотреть подобные выделенные линии. То есть их количество. Зайдите в Control Panel, выберите Server и щелкните на нем. Появится окно как ниже: 



Пункт Open Named Pipes может быть и не такой. Дело в том, что данным механизмом пользуются многие серьезные приложения, например, MS SQL Server. Мы с Вами создадим две простые консольные программы, которые будут эмулировать клиента и сервера. Итак сервер: 
// CreateNamedPipe.cpp : Defines the entry point for the console application.
//

Код

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

void main()
{
    HANDLE hp;
    hp=CreateNamedPipe("\\\\.\\pipe\\ipctest",PIPE_ACCESS_OUTBOUND,
        PIPE_TYPE_BYTE | PIPE_NOWAIT,1,0,0,NMPWAIT_USE_DEFAULT_WAIT,NULL);
    if (hp!=INVALID_HANDLE_VALUE)
    {
        int i;
        cin >> i;
    }
    else cout << "Error Create Name Pipe " << endl;
}

А теперь клиент: 
// CreateFile.cpp : Defines the entry point for the console application.
//

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

void main()
{
    HANDLE hp;
    hp=CreateFile("\\\\Server\\pipe\\ipctest", GENERIC_READ,
        FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hp!=INVALID_HANDLE_VALUE)
    {
        int i;
        cin >> i;
    }
    else cout << "Error pipe" << endl;
}


Как видите для создание канала надо вызвать функцию CreateNamedPipe, а для клиента создать файл указав сервер Server. Вы должны указывать свой сервер. То есть его имя в домене. А имя \\pipe\\ipctest должно совпадать и в клиенте и в сервере. Это имя канала. 

Вот после запуска прогаммы видно, что количество именованных каналов увеличилось на единицу.


--------------------
PM WWW ICQ Skype Jabber   Вверх
Олег2005
Дата 5.12.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Если первые шаги написали глупость - то это не значит что это так:
http://www.firststeps.ru/mfc/winapi/13_2.gif
(Почему то картинки не отображаются smile , поэтому дал ссылку на ваш рисунок)
Покажите мне где тут сеть?
Два консольных приложения на одной машине - и все  smile 
Никогда каналы - именованные или неименованные - вообще никакие - не смогут передать ни байта другому компу в сети - без использования сетевых протоколов это и теоретически, и  тем более практически НЕВОЗМОЖНО smile 

Это сообщение отредактировал(а) Олег2005 - 5.12.2007, 15:23
PM MAIL WWW MSN   Вверх
Alca
Дата 5.12.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Цитата

первые шаги написали глупость

Ув. Олег2005!
MS SQL Server использует для соединения с клиентами сокеты или пайпы!

Каналы (pipes) 

Каналы - это очень мощная технология обмена данными. Наверное, именно поэтому в полной мере они поддерживаются только в Windows NT/2000. В общем случае канал можно представить в виде трубы, соединяющей два процесса. Что попадает в трубу на одном конце, мгновенно появляется на другом. Чаще всего каналы используются для передачи непрерывного потока данных. Каналы делятся на анонимные (anonymous pipes) и именованные (named pipes). Анонимные каналы используются достаточно редко, они просто передают поток вывода одного процесса на поток ввода другого.Именованные каналы передают произвольные данные и могут работать через сеть. (Именованные каналы поддерживаются только в WinNT/2000.)

Это сообщение отредактировал(а) Alca - 5.12.2007, 18:18


--------------------
PM WWW ICQ Skype Jabber   Вверх
Олег2005
Дата 5.12.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Ув. Alca,
 
Цитата(Alca @  5.12.2007,  18:15 Найти цитируемый пост)
MS SQL Server использует для соединения с клиентами сокеты или пайпы!

Видите ли, мы с вами употребляем один и тот же термин, но совершенно в разных его представлениях
Итак, есть средство IPC - известное как именованный канал
И есть "протокол" Named Pipe -  который представляет собой очередной ляп со стороны Мелкомягких, называющих свои собственные решения общепринятыми названиями
И потому протокол  Named Pipe, использующийся для работы в локальных сетях, есть на самом деле сетевая библиотека, работающая только в локальной Windows cети, и скорее всего базируется на тщательно скрываемом интерфейсе NetBios
Читаем:
Цитата

SQL Server поддерживает множество сетевых библиотек: именованные каналы (named pipes), TCP/IP, multiprotocol, NWLink IPX/SPX, AppleTalk, Banyan VINES, VIA (Giganet) и VIA (ServerNet II). Каждая сетевая библиотека соответствует своему сетевому протоколу или набору протоколов.

И говорить не об протоколе, а об IPC smile 
Так что в принципе вопрос можно считать закрытым - мы говорили о разных ипостасях термина named pipe smile 

Это сообщение отредактировал(а) Олег2005 - 5.12.2007, 19:15
PM MAIL WWW MSN   Вверх
Alca
Дата 5.12.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Спасибо.


--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.