php 做的测试scoket服务器稳定性 和 承载能力的程序

<?php
// Client
// 设置错误处理
error_reporting (E_ALL);
// 设置处理时间
set_time_limit (0);

$ip = $argv[1];      // IP 地址
$port = $argv[2];            // 端口号

echo "try to connected to $ip:$port./r/n";
if($argv[3]>1000)
{
 echo 'PHP use socket select,max connection is 1000'."/n";
 $argv[3]=1000;
}
for($i=0;$i<$argv[3];$i++)
{
 $socket[$i] = @socket_create (AF_INET, SOCK_STREAM, SOL_TCP);   // 创建一个SOCKET
 if (!$socket[$i]){   
  echo "$i socket_create() failed:".socket_strerror ($socket[$i])."/n";
  $i--;
  usleep(500000);
  continue;
 }
 socket_set_option($socket[$i],SOL_SOCKET, SO_SNDTIMEO,  array(     "sec"=>0,      "usec"=>250000       )    );
 socket_set_option($socket[$i],SOL_SOCKET, SO_RCVTIMEO,  array(     "sec"=>0,      "usec"=>250000       )    );
 socket_set_option($socket[$i],SOL_SOCKET,SO_REUSEADDR,1);
 
 
 $conn[$i] = @socket_connect ($socket[$i], $ip, $port);       // 建立SOCKET的连接
 if (!$conn[$i])
  echo "$i connect failed!/n";
 usleep(2000);
}

echo "TOTAL Created [$i]/n";

$rlen=0;
$wlen=0;
$rm=0;
$wm=0;
$m=1024*1024;
while (true)
{
 for($i=0;$i<$argv[3];$i++)
 {
     $wlen+=socket_write($socket[$i], "W", 1);
  $rlen+=strlen(socket_read($socket[$i], 128));
  usleep(1000);
 }
 if($rlen>$m)
 {
  $rm+=floor($rlen/$m);
  $rlen=$rlen%$m;
 }
 if($wlen>$m)
 {
  $wm+=floor($wlen/$m);
  $wlen=$wlen%$m;
 }
 print $rm.'->'.$rlen.' '.$wm.'->'.$wlen."/n";
 echo "Time: ".date("Y-m-d H:i:s")."/n";
    sleep(1);
}

?>

 

使用方法:/usr/local/php/bin/php c.php *.*.*.166 13800 1000

转载于:https://www.cnblogs.com/Iamlein/archive/2010/07/02/2375918.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值