我正在使用服务器上的Dart 1.8.5。
我想要实现一个TCP Socket服务器来监听传入的连接,向每个客户端发送一些数据,并在客户端断开连接时停止生成数据。
以下是示例代码:
这段代码接受连接并打印“发送数据”。但即使客户端已经离开,它也永远不会打印“停止发送”。那么问题来了:如何在监听器中捕获客户端的断线?
以下是示例代码:
void main() {
ServerSocket.bind(
InternetAddress.ANY_IP_V4,
9000).then((ServerSocket server) {
runZoned(() {
server.listen(handleClient);
}, onError: (e) {
print('Server error: $e');
});
});
}
void handleClient(Socket client) {
client.done.then((_) {
print('Stop sending');
});
print('Send data');
}
这段代码接受连接并打印“发送数据”。但即使客户端已经离开,它也永远不会打印“停止发送”。那么问题来了:如何在监听器中捕获客户端的断线?