I’m not sure that testing file transfers locally is too meaningful, however I tried it with B4J jServer. No code is required to serve files. Just put them in the www folder.
The client creates 10 concurrent requests:
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("Layout1")
MainForm.Show
End Sub
Sub Button1_Click
For i = 1 To 10
DownloadFile
Next
End Sub
Sub DownloadFile
Dim j As HttpJob
j.Initialize("", Me)
Dim n As Long = DateTime.Now
j.Download("http://127.0.0.1:51042/1.zip")
Wait For (j) JobDone (j As HttpJob)
If j.Success Then
Dim time As Long = DateTime.Now - n
Dim SizeInKB As Int = j.Response.ContentLength / 1024
Log($"Total time: ${time}ms, Size: $1.0{SizeInKB}kb"$)
Log($"Transfer rate: $1.0{SizeInKB / (time / 1000)} kb/s"$)
End If
j.Release
End Sub
The output is:
Total time: 1233ms, Size: 176,410kb
Transfer rate: 143,074 kb/s
Total time: 1278ms, Size: 176,410kb
Transfer rate: 138,036 kb/s
Total time: 1307ms, Size: 176,410kb
Transfer rate: 134,973 kb/s
Total time: 1314ms, Size: 176,410kb
Transfer rate: 134,254 kb/s
Total time: 1329ms, Size: 176,410kb
Transfer rate: 132,739 kb/s
Total time: 1344ms, Size: 176,410kb
Transfer rate: 131,257 kb/s
Total time: 1359ms, Size: 176,410kb
Transfer rate: 129,809 kb/s
Total time: 1374ms, Size: 176,410kb
Transfer rate: 128,392 kb/s
Total time: 1394ms, Size: 176,410kb
Transfer rate: 126,549 kb/s
Total time: 1415ms, Size: 176,410kb
Transfer rate: 124,671 kb/s