无聊写的一个PHP Socket类
/** *//***
* @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();
***/
?>
转载于:https://www.cnblogs.com/8th/archive/2008/04/23/socket.html
无聊写的一个PHP Socket类相关推荐
- 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成...
写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...
- aspose 转pdf表格大小乱了_自己写了一个小工具类:pdf转word,没有页数和大小限制,保真!...
昨天下午遇到一个问题,想把一个比较大的pdf转化为word,结果使用了各种工具都收费.想着干脆写一个小工具吧,一开始使用的python等等试了好几个网上的代码,结果全都失真.于是乎不得不花了一下午自己 ...
- 我写的一个 C++ 复数类
我的C++ 的基础一直都不太扎实,最近有点空闲时间,找了本 C++ Primer 仔细的读了读.看完运算符重载那一章时,就想到写个复数类来练一练手. 实际上 C++ 中是有复数类的,而且还是个模版类, ...
- 今天工作的效率不高,才写了一个打印管理类
整个下午昏昏沉沉的,很想睡觉,可能是因为昨天晚上看"<龙刀奇缘>"看的太晚了:这布电影还不错,可惜情节太简单了点:这里贴个介绍,有兴趣的可以看看: 中文名称:龙刀奇缘 ...
- 同事写了一个疯狂的类构造器,我要疯了,Builder 模式都不会么?!!
疯狂的类构造器 最近栈长在做 Code Review 时,发现一段创建对象的方法: Task task = new Task(112, "紧急任务", "处理一下这个任务 ...
- entity framework 6 我写了一个公用数据类
public class BaseDAL{string strConn = "";public BaseDAL(string connString){strConn = connS ...
- java输出横纵坐标点_java编程 知道坐标求三角形 做了一部分题目要求写出一个Point(点)类,该类具有x,y(表示点的横、纵坐标)两个属...
共回答了11个问题采纳率:100% package aaa; public class Triangle { private Line line1; private Line line2; priva ...
- 最近有些无聊写了一个抓取github的ss账号的东西
github是https类型的直接去load网址 程序就死了.获取不到相关的东西. 然后 我就大概在网上搜了关于Qt访问https的东西,帖子到时很多,都只是说了大概怎么用.于是就自己照着写了写,本人 ...
- java的概率的程序_java实现一个抽奖概率类
在一些项目需求中,可能会遇到抽奖问题,如提供一系列奖品及获奖概率,要求根据概率返回每次抽到的奖品.以下是本人在实际项目中写的一个抽奖工具类,与大家共同分享: import java.util.Arra ...
最新文章
- .net 无法通过嵌套类型访问外部类型的非静态成员-解决方案
- numpy中reshape方法详解
- Jquery实现可拖拽的树菜单
- 5.go 代码包 package
- LSTM实现情感分类
- 全国各地所有高校名单数据库 全国所有高校排名
- 计算机安全模式无法启动,电脑安全模式启动不了怎么办
- python基础坑点
- iOS11界面交互设计规范(iOS 11 Human Interface Guidelines)
- Java 操作Word书签(一):添加、删除、读取书签
- PBS任务只排队,不运行
- 解决memoryerror
- 坚定、信心和进取是成功的基石
- 在12306的程序猿面前,没人敢说委屈
- linux--yun详解
- linux小主机玩法,遗传算法有好多有趣的玩法,不只能用来凑论文
- Java年月的正则表达式_java如何判断是否为有效的年月日
- hjr-SQL-ORECAL
- 时钟树综合(CTS)
- [转]git的GUI工具Sourcetree使用及命令行对比