写的一个PHP Socket类,功能还比较简单,不完善.
<?
php
/** */ /** *
* @project:socket类
* @license:GPL
* @author : 8th@live.cn-星期八
* @description:PHP Socket协议异步通信
* @file:socket.class.php
* @created date:Fri Apr 25 12:22:33 CST 2008
* @last modified :
** */
class sockets
{
public $host; // 通信地址
public $port; // 通信端口
public $limitTime = 0 ; // 连接超时时间
public $backlog = 3 ; // 请求队列中允许的最大请求数
private $socket = null ;
private $result = null ;
private $spawn = null ;
private $input = null ;
// 构造函数
public function __construct()
{
set_time_limit($ this -> limitTime);
$ this -> socket = socket_create(AF_INET, SOCK_STREAM, 0 ) or die( " Could not create socket\n " );
}
// 创建Socket连接,监听外部连接
public function socket_bind_listen()
{
$ this -> result = socket_bind($ this -> socket, $ this -> host, $ this -> port) or die( " Could not bind to socket\n " );
$ this -> result = socket_listen($ this -> socket, $ this -> backlog) or die( " Could not set up socket listener\n " );
}
// 接受请求连接,调用socket处理信息
public function accept_client()
{
$ this -> spawn = socket_accept($ this -> socket) or die( " Could not accept incoming connection\n " );
$msg = " Welcome to the Test Server " ;
socket_write($ this -> spawn, $msg, strlen($msg));
}
// 读取客户端输入
public function read_client()
{
$ this -> input = socket_read($ this -> spawn, 2048 , PHP_NORMAL_READ) or die( " Could not read input\n " );
}
// 处理客户端输入并返回数据
public function write_client()
{
socket_write($ this -> spawn, $ this -> input, strlen ($ this -> input)) or die( " Could not write output\n " );
}
// 析构函数
public function __destruct()
{
socket_close($ this -> spawn);
socket_close($ this -> socket);
}
}
/** */ /** *
$socket_test=new sockets();
$socket_test->host="192.168.0.2";
$socket_test->port="13654";
$socket_test->socket_bind_listen();
$socket_test->accept_client();
$socket_test->read_client();
$socket_test->write_client();
** */
?>
/** */ /** *
* @project:socket类
* @license:GPL
* @author : 8th@live.cn-星期八
* @description:PHP Socket协议异步通信
* @file:socket.class.php
* @created date:Fri Apr 25 12:22:33 CST 2008
* @last modified :
** */
class sockets
{
public $host; // 通信地址
public $port; // 通信端口
public $limitTime = 0 ; // 连接超时时间
public $backlog = 3 ; // 请求队列中允许的最大请求数
private $socket = null ;
private $result = null ;
private $spawn = null ;
private $input = null ;
// 构造函数
public function __construct()
{
set_time_limit($ this -> limitTime);
$ this -> socket = socket_create(AF_INET, SOCK_STREAM, 0 ) or die( " Could not create socket\n " );
}
// 创建Socket连接,监听外部连接
public function socket_bind_listen()
{
$ this -> result = socket_bind($ this -> socket, $ this -> host, $ this -> port) or die( " Could not bind to socket\n " );
$ this -> result = socket_listen($ this -> socket, $ this -> backlog) or die( " Could not set up socket listener\n " );
}
// 接受请求连接,调用socket处理信息
public function accept_client()
{
$ this -> spawn = socket_accept($ this -> socket) or die( " Could not accept incoming connection\n " );
$msg = " Welcome to the Test Server " ;
socket_write($ this -> spawn, $msg, strlen($msg));
}
// 读取客户端输入
public function read_client()
{
$ this -> input = socket_read($ this -> spawn, 2048 , PHP_NORMAL_READ) or die( " Could not read input\n " );
}
// 处理客户端输入并返回数据
public function write_client()
{
socket_write($ this -> spawn, $ this -> input, strlen ($ this -> input)) or die( " Could not write output\n " );
}
// 析构函数
public function __destruct()
{
socket_close($ this -> spawn);
socket_close($ this -> socket);
}
}
/** */ /** *
$socket_test=new sockets();
$socket_test->host="192.168.0.2";
$socket_test->port="13654";
$socket_test->socket_bind_listen();
$socket_test->accept_client();
$socket_test->read_client();
$socket_test->write_client();
** */
?>