网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > PHP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Memcached深度分析.
.动态网页技术PHP关于cookie和ses.
.Php+SqlServer实现分页显示.
.PHP用代码实现文件下载.
.PHPUnit袖珍指南之命令行测试工具.
.以文本方式上传二进制文件的PHP程.
.判“新”函数:得到今天与明天的.
.使用PHPLIB访问多个数据库.
.PHP Header用于页面跳转要注意的.
.告诉你如何关闭GZIP,多种程序方.
.利Mcrypt扩展库进行加密和解.
.利用ObjMap将多维数组转换成Obje.
.PHP程序员一般都忽略了的几点精华.
.Smarty中批量生成html的方法.
.生成sessionid和随机密码的例子.
.PHP读取文件夹内有多少个文件.
.利用js调用后台php进行数据处理原.
.PHP中GET变量的使用.
.使用PHP中的日期和时间函数.
.在字符串中把网址改成超级链接.

PHP监听Socket

发表日期:2008-12-18


<?php
set_time_limit(10);

$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
if ($socket) {
$result = socket_bind($socket, 'localhost', 1337);
if ($result) {
   $result = socket_listen($socket, 5);
   if ($result) {
    echo "监听成功";
   }
}
}else{
echo "监听失败";
}

do {
if (($msgsock = socket_accept($socket))) { /* 发送提示信息给连接上来的用户 */
   $msg = "==========================================\r\n" .
   "Welcome to the PHP Test Server. \r\n\r\n" .
   "To quit, type 'quit'. \r\n" .
   "To shut down the server type 'shutdown'.\r\n" .
   "To get help message type 'help'.\r\n" .
   "==========================================\r\n" .
   "php>";
}

socket_write($msgsock, $msg, strlen($msg));

do {
   $buf = socket_read($msgsock, 2048, PHP_BINARY_READ);

   if (false === $buf) {
    echo "socket_read() failed: reason: " . socket_strerror($result) . "\n";
    break 2;
   }
   if (!$buf = trim($buf)) {
    continue;
   } /* 客户端输入quit命令时候关闭客户端连接 */
   if ($buf == 'q') {
    break;
   } /* 客户端输入shutdown命令时候服务端和客户端都关闭 */
   if ($buf == 'shutdown') {
    socket_close($msgsock);
    break 2;
   } /* 客户端输入help命令时候输出帮助信息 */
   if ($buf == 'h') {
    $msg = " PHP Server Help Message \r\n\r\n" .
    " To quit, type 'quit'. \r\n" .
    " To shut down the server type 'shutdown'.\r\n" .
    " To get help message type 'help'.\r\n" .
    "php> ";
    socket_write($msgsock, $msg, strlen($msg));
    continue;
   } /* 客户端输入命令不存在时提示信息 */
   $talkback = "PHP: unknow command '$buf'.\r\nphp> ";
   socket_write($msgsock, $talkback, strlen($talkback));
   echo "$buf\n";
} while (true);
socket_close($msgsock);
}while (true);
/* 关闭Socket连接 */
socket_close($socket);
?>

上一篇:用PHP的Socket实现HTTP请求 人气:52
下一篇:在php上使用fork以及socket的sample 人气:54
浏览全部Socket的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐