【发布时间】:2011-09-01 10:33:56
【问题描述】:
我在 VB6 中使用 CallNamedPipe() 将消息发送到 C# 命名管道服务器。 在服务器端,管道由以下人员创建:
new NamedPipeServerStream(pipeName, PipeDirection.InOut, numThreads);
在客户端我使用这个调用写入 2 个字节:
Dim Header(1) As Byte
Header(0) = 0
Header(1) = 6
res = CallNamedPipe(szPipeName, Header(0), 2, bArray(0), numBytes, cbRead, 3000)
服务器看到管道已连接,因为 WaitForConnection() 确实返回,但随后无法读取任何字节。 客户端:CallNamedPipe失败,返回错误码87(参数无效?)
我的问题是:
管道创建的是字节模式还是消息模式类型?如果管道是字节模式,MSDN 说 CallNamedPipe() 失败。
有没有办法在 VB6 中写入字节模式管道。是否必须更改服务器代码才能创建消息模式管道?
如何让我的 VB6 代码工作?
【问题讨论】:
-
好的,我现在知道要创建消息类型管道,我需要另一个带有 PipeTransmissionMode 选项的构造函数。我现在已经让 CallNamedPipe() 调用工作了。继续下一个问题。
标签: vb6 message named-pipes