- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过管道将数据从 C++ DLL 文件发送到 C# pip 服务器。服务器已编程,使用 C# 客户端可以很好地获取数据。
我的简单 C# 客户端代码:
System.IO.Pipes.NamedPipeClientStream pipeClient = new System.IO.Pipes.NamedPipeClientStream(".", "testpipe", System.IO.Pipes.PipeDirection.InOut, System.IO.Pipes.PipeOptions.None);
if (pipeClient.IsConnected != true) { pipeClient.Connect(); }
StreamReader sr = new StreamReader(pipeClient);
StreamWriter sw = new StreamWriter(pipeClient);
try
{
sw.WriteLine("Test Message");
sw.Flush();
pipeClient.Close();
}
catch (Exception ex) { throw ex; }
}
但是,我不太喜欢用 C++ 实现这个客户端。我需要哪些头文件?你能给我一个简单的例子吗?谢谢!
编辑:感谢您的回复!为了测试它,我创建了一个 C++ 程序并编译了以下内容:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE pipe = CreateFile(
L"testpipe",
GENERIC_READ, // only need read access
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (pipe == INVALID_HANDLE_VALUE) {
// look up error code here using GetLastError()
DWORD err = GetLastError();
system("pause");
return 1;
}
// The read operation will block until there is data to read
wchar_t buffer[128];
DWORD numBytesRead = 0;
BOOL result = ReadFile(
pipe,
buffer, // the data from the pipe will be put here
127 * sizeof(wchar_t), // number of bytes allocated
&numBytesRead, // this will store number of bytes actually read
NULL // not using overlapped IO
);
if (result) {
buffer[numBytesRead / sizeof(wchar_t)] = '?'; // null terminate the string
// wcout << "Number of bytes read: " << numBytesRead << endl;
// wcout << "Message: " << buffer << endl;
} else {
// wcout << "Failed to read data from the pipe." << endl;
}
// Close our pipe handle
CloseHandle(pipe);
system("pause");
return 0;
return 0;
}
但是,当我运行它时,(pipe == INVALID_HANDLE_VALUE) 为真。调试显示 DWORD err = GetLastError();具有值 2,尽管服务器正在运行。有人有想法吗?
最佳答案
你可以在网上找到很多例子。搜索命名管道示例 c++。例如:http://www.avid-insight.co.uk/2012/03/introduction-to-win32-named-pipes-cpp/
关于c# - C++ NamedPipeClientStream 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429905/
我的代码在我的服务器中运行良好,但在azure应用程序服务中我收到此错误“操作已超时。”在行中在此处输入代码 pipeStream.Connect(TimeOut); 我的代码 public voi
在尝试读取之前,我需要检查 NamedPipeClientStream 以查看是否有字节可供读取。这样做的原因是,如果没有什么可读的,线程会在任何读取操作上停止,而我根本无法读取。即使没有字节可读,我
我构建了两个应用程序。一个是客户端,另一个是服务器。 它们通过命名管道进行通信。客户端创建 NamedPipeClientStream。一切正常,除非服务器关闭连接或服务器应用程序终止。 终止后,客户
我目前正在为 NamedPipeServerStream 编写一个小包装器/NamedPipeClientStream那是完全Event基于而不是使用 AsyncCallbacks . 我为几乎所有可
我想通过管道将数据从 C++ DLL 文件发送到 C# pip 服务器。服务器已编程,使用 C# 客户端可以很好地获取数据。 我的简单 C# 客户端代码: System.IO.Pipe
在 IPC 代码中,如果我通过调用 CreateFile 使用 Win32 API 从命名管道获取句柄,一切正常。如果我使用 NamedPipeClientStream 做同样的事情,它不想连接。 工
我有一个主要基于以下内容编写的 Namedpipeserver: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365588(v=
我对服务器/客户端架构有以下要求: 编写异步工作的服务器/客户端。 通信需要是双工的,即两端都可以读取和写入。 多个客户端可以在任何给定时间连接到服务器。 服务器/客户端应等待,直到它们可用并最终建立
使用 C 函数可以通过 _eof(pipeOut) 检查管道的输出端是否为空并跳过读取操作。 int endOfFile = _eof(myPipeIn); if(endOfFile != 0)
我在网上四处寻找,但找不到以下问题的答案。 我在客户端程序中有一个 C#/.NET NamedPipeClientStream 实例,工作线程正在调用 NamedPipeClientStream.Re
我正在尝试使用两个简单的 C# 表单解决方案在我的 Win-XP 工作站上实现双向命名管道通信。一种用于客户端,一种用于服务器。它们看起来几乎相同,并使用 NamedPipeServerStream
在将“写入”管道连接到正在运行的服务时,我遇到了与其他人相同的问题:UnauthorizedAccessException。我尝试了所有解决方案,但没有任何解决方案可以成功连接。 场景是在系统托盘中运
我想知道为什么 NamedPipes 存在于 .Net 中,如果我有一个应用程序想要创建某种代理来拦截其与目标服务器的连接,我将如何从中受益。 我想使用 NamedPipes 实现的是为 Minecr
我有连接到 NamedPipeServerStream 的 NamedPipeClientStream。他们交换了一些消息,然后 NamedPipeClientStream 关闭,而 NamedP
在我尝试关闭管道客户端后,我在输出控制台中看到以下错误: A first chance exception of type 'System.Net.Sockets.SocketException' o
.NET 中的 NamedPipeClientStream 类存在问题,您无法使用 PipeDirection.In 创建此类的实例,然后成功更改 ReadMode 到 PipeTransmissio
谁能告诉我为什么 NamedPipeClientStream.Connect() 会抛出 System.IO.FileNotFoundException 异常(无法找到指定的文件)?我认为 Conne
我是一名优秀的程序员,十分优秀!