Named Pipe究竟是什么东西呢?走的是什么协议啊?

Garboy 2005-01-08 11:28:40
昨天配置一对Cisco PIX防火墙,对于TCP协议的数据包都开放,可是SQLServer 2000的客户端只能通过Named Pipe方式访问到位于防火墙另一端的数据库,用TCP/IP的1433端口反而不行。不知道为什么,听说这里很强,特来请教请教高手。
谢谢大家了!
...全文
1383 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Garboy 2005-01-10
  • 打赏
  • 举报
回复
呵呵,好详细,谢谢!

p.s.
to yesyesyes():不用选tcp/ip也可以连接的,只要选择了named pipe,其余的它成不成功都无所谓了,因为利用命名管道已经可以穿过防火墙通信了。
再次感谢各位!
NinGoo 2005-01-10
  • 打赏
  • 举报
回复
NetBios协议,呵呵
NinGoo 2005-01-10
  • 打赏
  • 举报
回复
Named Pipe命名管道是一种进程间通信的方法,windows不同主机间的命名管道好像是透过bios协议实现的。具体也不太清楚,找一个网络编程的书上应该有讲
NinGoo 2005-01-10
  • 打赏
  • 举报
回复
在Win32下提供的进程间通信方式有以下几种:

剪贴板Clipboard:在16位时代常使用的方式,CWnd类中提供了支持。
COM/DCOM:通过COM系统的代理存根方式进行进程间数据交换,但只能够表现在对接口函数的调用时传送数据,通过DCOM可以在不同主机间传送数据。
Dynamic Data Exchange (DDE):在16位时代常使用的方式。
File Mapping:文件映射,在32位系统中提供的新方法,可用来共享内存。
Mailslots:邮件槽,在32位系统中提供的新方法,可在不同主机间交换数据,分为服务器方和客户方,双方可以通过其进行数据交换,在Win9X下只支持邮件槽客户。
Pipes:管道,分为无名管道:在父子进程间交换数据;有名管道:可在不同主机间交换数据,分为服务器方和客户方,在Win9X下只支持有名管道客户。
RPC:远程过程调用,很少使用,原因有两个:复杂而且与UNIX系统的RCP并不完全兼容。但COM/DCOM的调用是建立在RPC的基础上的。
Windows Sockets:网络套接口,可在不同主机间交换数据,分为服务器方和客户方。(相关介绍见Visual C++/MFC入门教程 第六章 网络通信开发)
WM_COPYDATA:通过发送WM_COPYDATA消息并将数据放在参数中来传递数据给其他进程。
下面主要介绍一下命名管道的用法,命名管道是一个有名字,单向或双向的通信管道。管道的名称有两部分组成:计算机名和管道名,例如\\[host_name]\pipe\[pipe_name]\(括号内为参数)。对于同一主机来讲允许有多个同一命名管道的实例并且可以由不同的进程打开,但是不同的管道都有属于自己的管道缓冲区而且有自己的通讯环境互不影响,并且命名管道可以支持多个客户端连接一个服务器端。命名管道客户端不但可以与本机上的服务器通讯也可以同其他主机上的服务器通讯。

命名管道的连接和通讯采用如下方式:

在服务器端第一次创建命名管道后等待连接,当客户端连接成功后服务器端的命名管道就用作通讯用途。如果需要再次等待连接,服务器端就需要再次打开命名管道(创建一个命名管道的实例)并等待连接。
对于客户端每次打开命名管道后建立与服务器间的连接,然后就可以利用命名管道进行通信,如果需要建立第二个连接则需要再次打开管道和再次建立连接。
创建命名管道时需要指定一个主机名和管道名,对于客户端来说可以是如下格式:\\[host_name]\pipe\[pipe_name]\也可以是\\.\pipe\pipe_name\其中.表示本机。而服务器端只能够在指定本机作为主机名,即只能使用下面的格式:\\.\pipe_name\。此外需要记住,在同一主机上管道名称是唯一的,一个命名管道一旦被创建就不允许相同名称的管道再被创建。
yesyesyes 2005-01-10
  • 打赏
  • 举报
回复
我的意思是,在客户端运行cliconfg,把tcp/ip选上
Garboy 2005-01-10
  • 打赏
  • 举报
回复
嗯,还真不是防火墙的问题。
我只是想了解了解这个named pipe,它用的什么协议。
因为如果客户端选择tcp/ip,连接不上服务器;可客户端如果选择了named pipe,就可以了。
所以我觉得很奇怪,我明明开放了tcp协议,它连不上来,而非要通过named pipe才行。晕
感谢yesyesyes和幸福鸟的关注!
还望更多高手指教
xingfuniao 2005-01-08
  • 打赏
  • 举报
回复
這裡是很強,不過我還不夠強!!!
yesyesyes 2005-01-08
  • 打赏
  • 举报
回复
既然TCP协议的数据包都开放,就不是防火墙的问题了,查一下服务器端和客户端的网络配置,看tcp/ip选上了没有.

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧