php如何监听端口,PHP做端口监听示例代码

1,PHP端口监听之服务器端 代码示例:

php

// 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";

e

lse

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

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

if ($listen)

echo "socket_listen() succes

sed!\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

?>

2,php端口监听之客户端 代码示例:

// 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);

?>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值