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);
?>
以上就是php socket 编程详细介绍的详细内容。