【发布时间】:2017-09-05 16:33:48
【问题描述】:
我在将带有 ACE_SPIPE_Connector (ACE) 的 C++ 客户端连接到 .NET 服务器时遇到问题。虽然对地址 \.\pipe\pipename 进行回显的测试有效,但我怀疑使用 ACE 库的 C++ 代码存在问题。
这是 .NET 服务器代码:
var server = new NamedPipeServerStream("acepipe");
server.WaitForConnection();
StreamReader reader = new StreamReader(server);
var line = reader.ReadLine();
Console.WriteLine(line);
这里是 C++ 客户端代码:
#if defined (ACE_WIN32)
#define MAKE_PIPE_NAME(X) ACE_TEXT ("\\\\.\\pipe\\") ACE_TEXT (X)
#else
#define MAKE_PIPE_NAME(X) ACE_TEXT (X)
#endif
const ACE_TCHAR *rendezvous = MAKE_PIPE_NAME("acepipe");
ACE_SPIPE_Stream cli_stream;
ACE_SPIPE_Connector con;
int i;
if (con.connect(cli_stream,
ACE_SPIPE_Addr(rendezvous)) == -1)
{
printf("Named pipe connect failed.\n%s\n", rendezvous);
return 0;
}
我不知道这里出了什么问题。
有什么帮助吗?
谢谢,洛萨
【问题讨论】: