使用Linux Shell运行客户端服务器的时间数
问题描述:
我编写了两个程序,一个是服务器,另一个是客户端。使用Linux Shell运行客户端服务器的时间数
这两个程序的目的是文件传输。首先,服务器程序将启动,然后是客户端程序。客户端程序将从服务器接收文件。
我想运行测试以查看多少文件大小的传输时间。每个文件大小我会做大约10次。
代码没问题。当我写这样的两个脚本时:
#!/bin/bash
time=$1
for((n=0;n<time;n++))
do
./server "3mb.MP3"
done
#!/bin/bash
time=$1
for((n=0;n<time;n++))
do
./client $n
done
然后运行服务器脚本,然后运行客户端脚本。我意识到由于for循环,许多服务器实例被创建,所以客户端。我只想让一个客户端和一个服务器同时进行通信。当文件传输结束后,我们将创建一对新的客户端服务器。
有没有解决方法?
谢谢!
(我使用Ubuntu 12.04。)
答
只是做一个全球for
循环,而不是为每个客户端和服务器的循环,如果你需要的是每次迭代一个客户端 - 服务器。喜欢的东西 -
time=$1
for((n=0;n<time;n++))
do
./server "3mb.MP3"
./client $n
done
要找到你的脚本的执行时间,你可以使用time ./x.sh
这将给你的整个脚本的执行时间......如果你想执行时间每次迭代,那么你有找到每个循环的start
和end
次,并从前者中减去后者。
答
当然,它是那样简单
#!/bin/bash
time=$1
for((n=0;n<time;n++))
do
./server "3mb.MP3"
./client $n
done
如果你的服务器在内部不分叉,您可能需要这样的:
#!/bin/bash
time=$1
for((n=0;n<time;n++))
do
./server "3mb.MP3" &
./client $n
done
的符号使shell不要等待服务器进程结束。
(感谢弗洛里斯)
它是不是这是一个问题的脚本,这是你如何写服务器/客户端代码。将服务器程序更改为同时接受多个客户端(假设您不只是复制/粘贴代码),或者确保每个服务器都可以独立运行。 – 2013-05-10 07:20:22
谢谢,但在我的测试中,一次服务器与一个客户端进行通信。如果一台服务器接受多个客户端,则结果不正确。 – leokaka 2013-05-10 07:25:53