dart 命名管道 通信 windows示例 dart:io
时间: 2023-02-08 16:59:41 浏览: 65
Dart 中使用命名管道进行进程间通信在 Windows 系统上的示例代码如下:
```dart
import 'dart:io';
void main() async {
// 创建服务端
var server = await ServerSocket.bind('127.0.0.1', 0, shared: true);
var pipeName = '\\\\.\\pipe\\my_pipe';
// 创建管道
var pipeServer = await RawServerSocket.bind(pipeName);
// 监听客户端连接
pipeServer.listen((client) {
print('客户端已连接');
client.write('你好,客户端!');
client.listen((data) {
print('收到数据:${new String.fromCharCodes(data)}');
});
});
// 等待客户端连接
var client = await server.first;
print('客户端已连接');
// 创建管道连接
var pipeClient = await RawSocket.connect(pipeName);
// 发送数据
pipeClient.write('你好,服务端!'.codeUnits);
// 接收数据
pipeClient.listen((data) {
print('收到数据:${new String.fromCharCodes(data)}');
});
}
```
上面的示例代码中,服务端会在本地创建一个名为 my_pipe 的命名管道,然后监听客户端的连接。客户端会连接到这个管道,并发送数据到服务端。服务端和客户端都会打印出收到的数据。