server:

 <?php
set_time_limit(0); $ip = '127.0.0.1';
$port = 8888; // 1. 创建
if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) == FALSE ){
echo 'create fail:' . socket_strerror(socket_last_error());
} // 2. 绑定
if ( socket_bind($sock, $ip, $port) == FALSE ) {
echo 'bind fail:' . socket_strerror(socket_last_error());
} // 3. 监听
if( socket_listen($sock, 4) == FALSE ){
echo 'listen fail:' . socket_strerror(socket_last_error());
} $count = 0; do{
// 4. 阻塞,等待客户端请求
if ( ($msgsock = socket_accept($sock)) == FALSE ) { echo 'accept fail:' . socket_strerror(socket_last_error()); break;
} else { // 5. 向客户端写入信息
$msg = 'server send successfully!';
socket_write($msgsock, $msg, strlen($msg)); // 5. 读取客户端信息
echo '-----test successfully!------';
$buf = socket_read($msgsock, 8192); $talkback = 'receive client: ' . $buf;
echo $talkback; if ($count >= 5) {
break;
}
} // 6. 关闭socket
socket_close($msgsock); }while(true); // 6. 关闭socket
socket_close($sock);

client:

<?php
error_reporting(E_ALL);
set_time_limit(0); $ip = '127.0.0.1';
$port = 8888; // 1. 创建
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if( $socket == FALSE ) {
echo 'create fail: ' . socket_strerror(socket_last_error());
} else {
echo 'OK';
} // 2. 链接
echo 'we will try to connect ' . $ip .':' . $port . '\r\n----';
$result = socket_connect($socket, $ip, $port);
if ( $result == FALSE) { } $in = 'HO ';
$in .= 'first blood--------';
$out = ''; // 3. 向服务端写入
if( !socket_write($socket, $in, strlen($in)) ) {
echo 'write fail: ' . socket_strerror(socket_last_error());
} else {
echo '-----send to server succefully! \r\n----';
echo 'the content is ' . $in;
} // 3. 从服务端读取
while ( $out = socket_read($socket, 8129) ) {
echo '-----receive from server succefully!\r\n------';
echo 'the contents is ' . $out;
} // 4. 关闭
echo '----close socket ...';
socket_close($socket);
echo 'closed ok.';

简单的php socket 实例的更多相关文章

  1. 网络编程基础【day09】:简单socket实例(二)

    本节内容 1.概述 2.socket实例 3.总结 一.概述 之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的? 二.socket实例 2. ...

  2. 一个简单的Android小实例

    原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ...

  3. mongodb 简单部署方案及实例

    mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb  我这里选用rehl 5.6 ...

  4. winsock2之最简单的win socket编程

    原文:winsock2之最简单的win socket编程 server.cpp #include <WINSOCK2.H> #include <stdio.h> #pragma ...

  5. 一个简单的jQuery插件开发实例

    两年前写的一个简单的jQuery插件开发实例,还是可以看看的: <script type="text/javascript" src="jquery-1.7.2.m ...

  6. UEditor编辑器和php简单的实现socket通信

    一.UEditor编辑器 使用这个编辑器是需要先下载编辑器文件,记得下载的时候放入自己的网站中,既然是php中使用,自然我下载的就是php的UEditor编辑器了,然后是utf-8的 其实使用很简单, ...

  7. springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目

    一个简单的用户登录系统 用户有账号密码,登录ip,登录时间 打开登录页面,输入用户名密码 登录日志,可以记录登陆的时间,登陆的ip 成功登陆了的话,就更新用户的最后登入时间和ip,同时记录一条登录记录 ...

  8. [WCF REST] 一个简单的REST服务实例

    Get:http://www.cnblogs.com/artech/archive/2012/02/04/wcf-rest-sample.html [01] 一个简单的REST服务实例 [02] We ...

  9. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

随机推荐

  1. Dictionary

    命名空间:System.Collections.Generic(程序集:mscorlib) Dictionary<TKey, TValue> 类   一般用法:通过key获取value,k ...

  2. EntityFramework错误:Unable to update the EntitySet because it has a DefiningQuery

    错误截图: 解决方法: 在所操作的数据库表中添加一个主键即可解决此问题

  3. Python Day13

    堡垒机 权限管理 当你公司的服务器变的越来越多后,需要操作这些服务器的人就肯定不只是一个运维人员,同时也可能包括多个开发人员,那么这么多的人操作业务系统,如果权限分配不当就会存在很大的安全风险,举几个 ...

  4. Swift之控件-UIlabel

    let label = UILabel(frame:CGRect(x: 20,y: 100,width: 280,height: 40)) label.text = "理想接电话是否很沮丧和 ...

  5. 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

    http://blog.csdn.net/lidew521/article/details/24441825

  6. 基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度

    http://www.cnblogs.com/bobositlife/p/aspnet-mvc-csharp-quartz-net-timer-task-scheduler.html 在之前的文章&l ...

  7. Linux服务管理

  8. Excel—TEXT函数功能详解

    1.将数值转为文本: "@" 2.转换为特定时间格式: "yyyy年mm月dd日" "yyyy/mm/dd" "yyyy/m/d& ...

  9. iOS-关于使用其他应用打开本应用文档

    简介:本片文章是对官方文档的翻译,非常的感谢文章的翻译者:颐和园 官方地址:Document Interaction Programming Topics for iOS 文章的介绍内容: ***** ...

  10. 转:入门Webpack,看这篇就够了

    写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段 ...