• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> PHP 开发 >> PHP代码 >> 详细内容
 

推荐文章

 
 

热点文章

  • 3389远程服务器GHOST的视频教程
  • 利用纯真QQIP数据库做快速IP归属地查询
  • 天气预报小偷,根据IP自动判断地址
  • php在线文本编辑器
  • 实例(Smarty+FCKeditor新闻系统)
  • php里实现汉字转区位码
  • 对dvbbs.php 全文搜索的完全分析
  • php生成会动的gif图片代码
  • php的字符编码转换工具
  • DIV+CSS+PHP巨献——网页内容先竖排再横排
  • PHP获取网卡的MAC地址
  • 56.com视频采集接口程序(PHP)
 
 

相关文章

  • PHP初级程序员面试题及答案
  • PHP使用zlib扩展实现页面GZIP压缩输出
  • 为什么PHP令人不爽(对于大型系统)
  • php中的stdClass
  • php中ADODB类使用
  • php自动post数据--百度贴吧灌水机器人代码实例
  • Linux/FreeBSD下用C语言开发PHP的so扩展模块例解
  • php取不到session的常见原因
  • 使用php的zlib压缩和解压缩swf文件
  • PHP5.2下function和class性能对比
  • PHP用mkdir()新建立目录无写的权限的问题
  • mysql的bigint类型与php的mysql_insert_id函数造成的b..
 
 

百度搜索

 
 

php 做服务器端程序

  • 阅览次数:
  • 文章来源: CP整理
  • 原文作者:
  • 整理日期: 2008-08-15
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

#! /usr/local/php/bin/php
/* 设置不显示任何错误 */
error_reporting(0);

/* 脚本超时为无限 */
set_time_limit(0);

/* 开始固定清除 */
ob_implicit_flush();

/* 本机的IP和需要开放的端口 */
$address = ‘192.168.0.1′;
$port = 10000;

/* 产生一个Socket */
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) /* 把IP地址端口进行绑定 */
if (($ret = socket_bind($sock, $address, $port)) /* 监听Socket连接 */
if (($ret = socket_listen($sock, 5)) /* 永远循环监接受用户连接 */
do {
    if ((
$msgsock = socket_accept($sock)) /* 发送提示信息给连接上来的用户 */
    
$msg = “==========================================rn” .
” Welcome to the PHP Test Server. rnrn”.
        
” To quit, type ‘quit’. rn” .
” To shut down the server type ’shutdown’.rn” .
” To get help message type ‘help’.rn” .
”==========================================rn” .
”php> “;
    
socket_write($msgsock, $msg, strlen($msg));

    do {
        if (
false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo
“socket_read() failed: reason: ” . socket_strerror($ret) . “n”;
            break
2;
        }
        if (!
$buf = trim($buf)) {
            continue;
        }
  
/* 客户端输入quit命令时候关闭客户端连接 */
        
if ($buf == ‘quit’) {
            break;
        }
  
/* 客户端输入shutdown命令时候服务端和客户端都关闭 */
        
if ($buf == ’shutdown’) {
            
socket_close($msgsock);
            break
2;
        }
  
/* 客户端输入help命令时候输出帮助信息 */
  
if ($buf == ‘help’) {
   
$msg = ” PHP Server Help Message rnrn”.
   
” To quit, type ‘quit’. rn” .
   
” To shut down the server type ’shutdown’.rn” .
   
” To get help message type ‘help’.rn” .
   
”php> “;
    
socket_write($msgsock, $msg, strlen($msg));
    continue;
  }
  
/* 客户端输入命令不存在时提示信息 */
        
$talkback = “PHP: unknow command ‘$buf’.rnphp> “;
        
socket_write($msgsock, $talkback, strlen($talkback));
        echo
“$bufn”;
    } while (
true);
    
socket_close($msgsock);
} while (
true);

/* 关闭Socket连接 */
socket_close($sock);
?>

保存以上代码退出。

上面的代码大致就是完成一个类似于Telnet服务器端的功能,就是当服务器端运行该程序的时候,客户端能够连接该服务器的10000端口进行通信。

加上文件的可执行权限:
$ chmod +x /home/heiyeluren/php_daemon2.php

在服务器上执行命令:
$ nohup /home/heiyeluren/php_daemon2.php &

就进入了后台运行,我们通过Windows的客户端telnet上去:

C:\>telnet 192.168.0.1 10000

如果提示:

正在连接到192.168.0.188…不能打开到主机的连接, 在端口 10000: 连接失败

则说明服务器端没有开启,或者上面的程序没有正确执行,请检查php是否 –enable-sockets 功能。如果提示:

==========================================
Welcome to the PHP Test Server.

To quit, type ‘quit’.
To shut down the server type ’shutdown’.
To get help message type ‘help’.
==========================================
php>

则说明顺利连接上了我们的PHP写的服务器端守护进程,在php>提示符后面能够执行help、quit、shutdown等三个命令,如果命令输入不是这三

个,则提示:

php> asdf
PHP: unknow command ‘asdf’.

执行help命令可以获取帮助:

php> help
PHP Server Help Message

To quit, type ‘quit’.
To shut down the server type ’shutdown’.
To get help message type ‘help’.

这个服务器端就不介绍了,可以自行扩展。

上一篇:PayPal全中文详解
下一篇:PHP初级程序员面试题及答案
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号