MyException - 我的异常网
当前位置:我的异常网» C++ » Windows和linux管道通讯有关问题

Windows和linux管道通讯有关问题

www.MyException.Cn  网友分享于:2013-03-07  浏览:126次
Windows和linux管道通讯问题
linux 机器IP地址192.168.0.187 建立管道服务端\\.\Pipe\pipeserver
另台机器Windows下建立管道客户端\\192.168.0.187\Pipe\pipeserver
windows下WaitNamedPipe失败,怎么回事

------解决方案--------------------
管道是Windows和Unix系统都提供的一种进程间通信方式。管道分为两种:匿名管道与命名管道。匿名管道一般用于进程内通信,而进程间通信则可以使用命名管道,同时命名管道也用于多台计算机之间进行通信。对于命名管道,只有Windows NT 3.1后的版本才支持,比如Windows NT 4,Windows 2000,而Windows 95/98并不支持。
管道的使用包括创建管道,读写管道,以及关闭管道。Microsoft将管道的读写过程看作是文件的读写过程,即将管道作为文件来处理。文件的读写在Win32中可以使用ReadFile/WriteFile、ReadFileEx/WriteFileEx函数来实现。

------解决方案--------------------
Named Pipes
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously. 

Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network. 

Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe. 

 

------解决方案--------------------
Pipe Functions
The following functions are used with pipes. 

  
 
CallNamedPipe
ConnectNamedPipe
CreateNamedPipe
CreatePipe
DisconnectNamedPipe
GetNamedPipeHandleState
GetNamedPipeInfo
PeekNamedPipe
SetNamedPipeHandleState
TransactNamedPipe
WaitNamedPipe


 

------解决方案--------------------
Named Pipes
This section describes limitations and problems involving the use of named pipes in Windows NT 3.5.

To upgrade from Windows for Workgroups to Windows NT 3.5, installing IPX/SPX protocol in addition to NetBEUI protocol, you need to install a new VREDIR.386, which is available on the Windows NT Server CD in \clients\wfw\update\vredir.386.

Make sure the default frame type is correct. It has been changed from ethernet_802.3 to ethernet_802.2. If you are using 802.3, you need to change the following entry in the protocol.ini under the [nwlink] section:

FRAME=ETHERNET_802.3

Windows NT Server 3.5 can support a maximum of 512 named pipes. Each SNA Server client uses two named pipes, so you can run out of SMB server resources at around 250 clients if you are using named pipes as the transport. The 20xx events in the Event Log typically result from SMB running out of these MaxWorkItem resources.

The maximum is raised to 4096 in Windows NT Server 3.51, and the SNA Server 2.11 automatically sets this entry to 4096. The default is still set to 512 if you are running SNA Server 2.1 on Windows NT 3.51, so you'll have to manually change this parameter. There are some other improvements in SNA Server 2.11, including not having to log on twice, so you should upgrade to it.

It would be a good idea to switch to sockets from named pipes for several reasons:

• TCP/IP or IPX connections don't have the resource limitation described here
• You can get up to a 30 percent improvement in performance
• Negotiating a session with sockets takes one third less traffic on the network compared to using named pipes
• Named pipes consume quite a bit more memory on the server

文章评论

程序员和编码员之间的区别
程序员和编码员之间的区别
我是如何打败拖延症的
我是如何打败拖延症的
总结2014中国互联网十大段子
总结2014中国互联网十大段子
漫画:程序员的工作
漫画:程序员的工作
 程序员的样子
程序员的样子
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
编程语言是女人
编程语言是女人
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
鲜为人知的编程真相
鲜为人知的编程真相
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
中美印日四国程序员比较
中美印日四国程序员比较
一个程序员的时间管理
一个程序员的时间管理
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
如何成为一名黑客
如何成为一名黑客
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
10个调试和排错的小建议
10个调试和排错的小建议
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
代码女神横空出世
代码女神横空出世
程序员都该阅读的书
程序员都该阅读的书
每天工作4小时的程序员
每天工作4小时的程序员
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
Java程序员必看电影
Java程序员必看电影
程序员的鄙视链
程序员的鄙视链
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
我的丈夫是个程序员
我的丈夫是个程序员
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
那些争议最大的编程观点
那些争议最大的编程观点
程序员必看的十大电影
程序员必看的十大电影
程序员应该关注的一些事儿
程序员应该关注的一些事儿
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
为什么程序员都是夜猫子
为什么程序员都是夜猫子
旅行,写作,编程
旅行,写作,编程
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有