Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php Socket 编程详细介绍

php Socket 编程详细介绍

怪我咯
怪我咯asal
2017-07-12 10:58:502666semak imbas

PHP 使用Berkley的socket库来创建它的连接。你可以知道socket只不过是一个数据结构。你使用这个socket数据结构去开始一个客户端和服务器之间的会话。这个服务器是一直在监听准备产生一个新的会话。当一个客户端连接服务器,它就打开服务器正在进行监听的一个端口进行会话。这时,服务器端接受客户端的连接请求,那么就进行一次循环。现在这个客户端就能够发送信息到服务器,服务器也能发送信息给客户端。
产生一个Socket,你需要三个变量:一个协议、一个socket类型和一个公共协议类型。产生一个socket有三种协议供选择,继续看下面的内容来获取详细的协议内容。
定义一个公共的协议类型是进行连接一个必不可少的元素

下面让我们以一个简单的例子开始---一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务.代码如下:

<?php
// 设置一些基本的变量 
$host = "192.168.1.99"; 
$port = 1234; 
// 设置超时时间 
set_time_limit(0); 
// 创建一个Socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create 
socket\n"); 
//绑定Socket到端口 
$result = socket_bind($socket, $host, $port) or die("Could not bind to 
socket\n"); 
// 开始监听链接 
$result = socket_listen($socket, 3) or die("Could not set up socket 
listener\n"); 
// accept incoming connections 
// 另一个Socket来处理通信 
$spawn = socket_accept($socket) or die("Could not accept incoming 
connection\n"); 
// 获得客户端的输入 
$input = socket_read($spawn, 1024) or die("Could not read input\n"); 
// 清空输入字符串 
$input = trim($input); 
//处理客户端输入并返回结果 
$output = strrev($input) . "\n"; 
socket_write($spawn, $output, strlen ($output)) or die("Could not write 
output\n"); 
// 关闭sockets 
socket_close($spawn); 
socket_close($socket); 
?>

Atas ialah kandungan terperinci php Socket 编程详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn