Heim > Backend-Entwicklung > PHP-Tutorial > PHP+SOCKET例证

PHP+SOCKET例证

WBOY
Freigeben: 2016-06-13 13:20:04
Original
870 Leute haben es durchsucht

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);
Nach dem Login kopieren

?

?

?

?

?

?

?

?

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

?

?

// 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
Nach dem Login kopieren

?

?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage