我创建了 2 个 python 脚本,用于模拟文件传输服务器的服务器和客户端。我在终端中启动服务器,然后在另一个终端中启动客户端。一切都连接得很好,在客户端,用户被要求选择要下载的文件编号,他在终端中输入编号,然后下载文件。这里一切都很好。它还支持多个客户端:我试过打开 2 个客户端,都可以连接到服务器,每个类型都在一个数字中,并且它们同时下载它们的文件(文件传输是服务器端的不同线程)。现在我需要做的是检查并发客户端(2,4,10)对下载速度的影响。这意味着我需要编写一个脚本来模拟多个并发客户端,以及每个客户端的输入(要下载的文件数)。我不知道该怎么做。你能帮我解决这个问题吗?
注意:这可以在 Python、Bash 或其他任何东西中完成。我意识到这只是一个很大的段落,很抱歉。如果您需要任何其他信息来帮助我,请随时告诉我。
另外,我看到有人提到过expect,但他们也说将它与bash混合使用是个坏主意。
最后,我知道这很可能是一个常见的问题/问题,但尽管尝试了几次谷歌搜索,但这里没有运气。所以请随时告诉我在谷歌或任何stackoverflow上一个问题上搜索什么。 感谢您抽出宝贵时间。
答案 0 :(得分:1)
如果我没理解错的话,您可以先在终端中运行 python3 client.py
,然后输入下载编号来模拟单个客户端。
您可以使用此处的字符串自动输入数字:python3 client.py <<< 5
。
现在,并行运行 n 次来模拟 n 个客户端:
#! /bin/bash
for i in {1..100}; do
python3 client.py <<< 5 &
done
这里我们选择 n=100 和固定输入 5
。当然,您可以将其随机化。要选择 1 到 9 之间的随机数,请将 5
替换为 $(( RANDOM % 9 + 1 ))
。