delphi - 在 Delphi 中使用命名管道从 Windows 服务到 GUI 前端进行通信
问题描述
我正在使用 Russell Libby 的 Pipes.PAS 单元来促进使用命名管道的两个程序之间的通信。我使用一台服务器(带有 GUI 的 VCL 程序)和一台可以多次启动的客户端(也是 VCL)制作了一个工作示例,我可以在它们之间来回通信。
但是,当我在 Windows 服务中运行相同的服务器代码时,我可以看到客户端在服务中连接(我登录到文本文件),但是当服务广播要由客户端读取的消息时,什么也没有发生在客户端。
为了让命名管道从 Windows 服务工作到前端 GUI 程序,是否需要做任何特殊的事情?
我构建服务器管道如下:
Pipe:=TPipeServer.Create(Self);
Pipe.Name:='Pipe';
Pipe.OnPipeMessage:=PipePipeMessage;
Pipe.OnPipeConnect:=PipePipeConnect;
Pipe.OnPipeDisconnect:=PipePipeDisconnect;
Pipe.PipeName := 'Service';
Pipe.Active:=TRUE;
和客户端:
Pipe:=TPipeClient.Create(NIL);
Pipe.Name:='Pipe';
Pipe.MemoryThrottle:=10240000;
Pipe.PipeName := 'Service';
Pipe.OnPipeMessage:=PipePipeMessage;
但我从未执行过 PipePipeMessage 的代码。
我错过了什么吗?就像我说的,Connected 中的服务器端代码被执行,所以建立了一个连接......
解决方案
推荐阅读
- angular - 无法在 Angular 6 中创建 scss
- c# - 如何使用 AxWindowsMediaPlayer 库将视频旋转 90 度
- java - 无法使用 java 通过 REST 从 VSTS 获取数据.....总是出现连接超时错误
- sql-server - 为什么我无法恢复离线数据库 - 不断出现错误
- android - Xamarin.Forms 项目中的“需要 Android SDK 组件”
- laravel - Laravel lumen 从另一个关系中获取数据
- angular - Angular ngx 数据表隐藏了一些列内容
- .net - 无法解决 exe .Net 的依赖关系
- java - 将 Angular 7 与现有的 Java 应用程序集成
- angular - 带有 ionic 3 的 Angular Material Design:主题颜色不起作用