Flutter 如何在Dart http_服务器中为单个客户端设置最大连接限制?

Flutter 如何在Dart http_服务器中为单个客户端设置最大连接限制?,flutter,dart,httpserver,dart-io,dart-http,Flutter,Dart,Httpserver,Dart Io,Dart Http,我已经创建了一个简单的颤振应用程序来服务我的电话目录(索引/),以便与PC共享我的文件。 (我使用IDM(Internet下载管理器)下载文件) 它在小文件上运行良好,但当我将大文件下载到PC时,应用程序自动关闭(这里我尝试下载691MB文件) 因为它创建了8个要下载的连接。 如何在此代码中为单个客户端的最大连接设置限制?(如通过最多2个连接下载文件) (使用HttpServer和VirtualDirectory实现。) 确保已启用“读取\u外部\u存储”权限 <uses-permissi

我已经创建了一个简单的颤振应用程序来服务我的电话目录(索引/),以便与PC共享我的文件。
(我使用IDM(Internet下载管理器)下载文件) 它在小文件上运行良好,但当我将大文件下载到PC时,应用程序自动关闭(这里我尝试下载691MB文件) 因为它创建了8个要下载的连接。

如何在此代码中为单个客户端的最大连接设置限制?(如通过最多2个连接下载文件)

(使用HttpServer和VirtualDirectory实现。)

确保已启用“读取\u外部\u存储”权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

应用程序在本地网络上工作

URL=>gatewayIP:7766(最有可能的情况是您从手机创建wifi热点并将其连接到PC)

请帮我把这个修好

ps:当我再次打开应用程序并单击startServer时,文件下载会恢复


编辑:我使用IDM(Internet下载管理器)下载导致崩溃的文件,但当我使用从浏览器下载文件时,它工作正常。

我在dart:io库中找到了
connectionsInfo()
API

通过
connectionsInfo()
API,我们可以访问四种类型的值/属性:
Total
Active
Idle
closing

要限制最大连接,我们必须在服务器侦听客户端请求时使用
if-else
语句:

...
//_server is an httpServer
_server.listen((req){

    int maxConnection = 4;
    
    //if active connections are more than maxConnection than server will not response to any request
    if(_server.connectionsInfo().active <= maxConnection){
    
        staticFiles.serveRequest(req);
        // Or Your Logic for request response...
        
    }
});
...
。。。
//_服务器是一个httpServer
_server.listen((req){
int-maxConnection=4;
//若活动连接多于maxConnection,服务器将不会响应任何请求
如果(_server.connectionsInfo().active
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
...
//_server is an httpServer
_server.listen((req){

    int maxConnection = 4;
    
    //if active connections are more than maxConnection than server will not response to any request
    if(_server.connectionsInfo().active <= maxConnection){
    
        staticFiles.serveRequest(req);
        // Or Your Logic for request response...
        
    }
});
...