Home > Backend Development > PHP Tutorial > PHP+SOCKET例证

PHP+SOCKET例证

WBOY
Release: 2016-06-13 13:20:04
Original
871 people have browsed it

PHP+SOCKET例子

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

$ip = "";       // IP 地址
$port = 1000;            // 端口号

$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);   // 创建一个SOCKET
if ($socket)
    echo "socket_create() 成功!<br>\n";
else
    echo "socket_create() 失败:".socket_strerror ($socket)."<br>\n";

$conn = socket_connect ($socket, $ip, $port);       // 建立SOCKET的连接
if ($conn)
    echo "成功连接到[".$ip.":".$port."]<br>\n";
else
    echo "socket_connect() 失败:".socket_strerror ($conn)."<br>\n";

echo socket_read ($socket, 1024)."<br>";

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

$ar = array("HELLO","HELP","test","QUIT");
$i = 0;

while (true)
{
//    $command = trim (fgets ($stdin, 1024));
//    socket_write ($socket, $command, strlen ($command));
echo "发送 $ar[$i]<br>";
    socket_write ($socket, $ar[$i], strlen($ar[$i]));
$i++;
    $msg = trim (socket_read ($socket, 1024));
    echo "收到:$msg<br>\n";
    if ($msg == "Bye-Bye")
        break;
}
fclose ($stdin);
socket_close ($socket);
Copy after login

?

?

?

?

?

?

?

?

======================================

?

?

// Server
// 设置错误处理
error_reporting (E_ALL);
// 设置运行时间
set_time_limit (0);
// 起用缓冲
ob_implicit_flush ();
$ip = "";        // 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);
    if ($command == "QUIT")
        break;
}

socket_close ($socket);                   // 关闭SOCKET
Copy after login

?

?

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template