php监听端口 写入文件,月光软件站 - 编程文档 - 其他语言 - PHP做端口监听

PHP做端口监听

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

服务器

// Server

// 设置错误处理

error_reporting (E_ALL);

// 设置运行时间

set_time_limit (0);

// 起用缓冲

ob_implicit_flush ();

$ip = "127.0.0.1";        // IP地址

$port = 1000;             // 端口号

$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);       // 创建一个SOCKET

if ($socket)

echo "socket_create() successed!\n";

else

echo "socket_create() failed:".socket_strerror ($socket)."\n";

$bind = socket_bind ($socket, $ip, $port);              // 绑定一个SOCKET

if ($bind)

echo "socket_bind() successed!\n";

else

echo "socket_bind() failed:".socket_strerror ($bind)."\n";

$listen = socket_listen ($socket);                 // 间听SOCKET

if ($listen)

echo "socket_listen() successed!\n";

else

echo "socket_listen() failed:".socket_strerror ($listen)."\n";

while (true)

{

$msg = socket_accept ($socket);               // 接受一个SOCKET

if (!$msg)

{

echo "socket_accept() failed:".socket_strerror ($msg)."\n";

break;

}

$welcome = "Welcome to PHP Server!\n";

socket_write ($msg, $welcome, strlen ($welcome));

while (true)

{

$command = strtoupper (trim (socket_read ($msg, 1024)));

if (!$command)

break;

switch ($command)

{

case "HELLO":

$writer = "Hello Everybody!";

break;

case "QUIT":

$writer = "Bye-Bye";

break;

case "HELP":

$writer = "HELLO\tQUIT\tHELP";

break;

default:

$writer = "Error Command!";

}

socket_write ($msg, $writer, strlen ($writer));

if ($command == "QUIT")

break;

}

socket_close ($msg);

}

socket_close ($socket);                   // 关闭SOCKET

?>

客户端

// Client

// 设置错误处理

error_reporting (E_ALL);

// 设置处理时间

set_time_limit (0);

$ip = "127.0.0.1";       // IP 地址

$port = 1000;            // 端口号

$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);   // 创建一个SOCKET

if ($socket)

echo "socket_create() successed!\n";

else

echo "socket_create() failed:".socket_strerror ($socket)."\n";

$conn = socket_connect ($socket, $ip, $port);       // 建立SOCKET的连接

if ($conn)

echo "Success to connection![".$ip.":".$port."]\n";

else

echo "socket_connect() failed:".socket_strerror ($conn)."\n";

echo socket_read ($socket, 1024);

$stdin = fopen ('php://stdin', 'r');

while (true)

{

$command = trim (fgets ($stdin, 1024));

socket_write ($socket, $command, strlen ($command));

$msg = trim (socket_read ($socket, 1024));

echo $msg."\n";

if ($msg == "Bye-Bye")

break;

}

fclose ($stdin);

socket_close ($socket);

?>

down_info.asp?id=35784

相关文章:

相关软件:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值