这篇文章主要为大家详细介绍了PHP利用socket(fsockopen)的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!fsockopen函数能够运用,首先要开启php.ini中的allow_url_open=on;

fsockopen是对socket客户端代码的封装,该函数中封装了socket_create,socket_connect。

服务器端代码:server.php

代码如下:

/* 512笔记 www.512Pic.com */

error_reporting(E_ALL);

set_time_limit(0);

$address = '127.0.0.1';

$port = 10008;

//创建端口

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {

echo "socket_create() failed:reason:" . socket_strerror(socket_last_error()) . "\n";

}

//绑定

if (socket_bind($sock, $address, $port) === false) {

echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";

}

//监听

if (socket_listen($sock, 5) === false) {

echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";

}

while (true) {

//得到一个链接

if (($msgsock = socket_accept($sock)) === false) {

echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n";

break;

}

//welcome 发送到客户端

$msg = "1.server send:welcome
";

socket_write($msgsock, $msg, strlen($msg)); //返回信息给客户端

echo 'read client message\n';

$buf = socket_read($msgsock, 8192); //获取客户端发送过来的信息

$talkback = "2.received message:$buf\n";

echo $talkback;

if (false === socket_write($msgsock, $talkback, strlen($talkback))) { //返回信息给客户端

echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";

} else {

echo 'send success';

}

socket_close($msgsock);

}

socket_close($sock);

客户端代码:fsocket.php

代码如下:

/* 512笔记 www.512Pic.com */

$fp = fsockopen("127.0.0.1", 10008, &$errno, &$errstr, 10);

if (!$fp) {

echo $errstr . " (". $errno . ")
n";

} else {

$in = "HEAD / http/1.1\r\n";

$in .= "HOST: localhost \r\n";

$in .= "Connection: close\r\n\r\n";

fputs($fp, $in);

while (!feof($fp)) {

echo fgets($fp, 128);

}

fclose($fp);

}

注:关于PHP利用socket(fsockopen)的简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:socket

php fsockopen socket,PHP利用socket(fsockopen)的简单示例相关推荐

  1. php fsockopen 传参,利用PHP fsockopen 模拟POST/GET传送数据的方法

    使用php可以模拟post和get传送数据到别的网页或者是站点,那么怎么传送数据呢?下面由小编给大家介绍利用PHP fsockopen 模拟POST/GET传送数据的方法,需要的朋友 使用php可以模 ...

  2. 使用java利用163邮箱发送邮件简单示例

    此文章只是基础代码,需要自己深层次的封装,适用于初次开发工作者 1代码 private static final String from="";//163邮件的账号     pri ...

  3. 自己动手写简单的web应用服务器(4)—利用socket实现文件的下载

    直接上源码: 服务器: 1 package download; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOut ...

  4. android socket 简易聊天室 java服务器_利用Socket制作一个简易的Android聊天室

    首先制作一个客户端,界面如下: 使用方法:启动后,首先在登录编辑框输入一个昵称,然后点击登录,上面灰色区域是聊天窗,其中会显示你的登录提示,显示其他人发的消息.在的登录成功后,可以在下面的发送编辑框内 ...

  5. 老雷socket编程之PHP利用socket扩展实现聊天服务

    老雷socket编程之PHP利用socket扩展实现聊天服务 socket聊天服务原理 PHP有两个socket的扩展 sockets和streams sockets socket_create(AF ...

  6. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  7. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  8. Java中利用socket实现简单的服务端与客户端的通信(入门级)

    Java编程中,要想要使用网络通信,就离不开Socket编程,在此对socket进行简单的介绍.首先声明,这是一个入门级的介绍,仅仅简单的实现了客户端向服务端发送数据,服务端正常的接收数据,当接收到特 ...

  9. python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序

    psutil是一个跨平台的库(http://code.google.com/p/psutil/),能够轻松的实现获取系统运行的进程和系统利用率(CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...

最新文章

  1. 《Fabric 云存储的电子健康病历系统》(1)系统介绍
  2. 中篇 | 多轮对话机器之话题意图识别
  3. 去除 position:fixed 抖动的方法
  4. [转][探讨]为什么说JavaScript是性价比最高的技术?
  5. 《Scikit-Learn与TensorFlow机器学习实用指南》第7章 集成学习和随机森林
  6. 宁畅定制算力为冰雪训练插上智慧翅膀
  7. 【PyQt5 知识点示例代码】布局、菜单、信号与槽、对话框、组件
  8. mysql5.6.25及以上下载衔接
  9. js 语音识别_js语音识别_js 语音识别库 - 云+社区 - 腾讯云
  10. 高清银行LOGO图片整合分享
  11. 项目管理第四章项目整合管理
  12. 软件测试人员需不需要懂代码
  13. Android 打开应用商店评分
  14. 注册免费域名教程(怎样免费注册域名)手把手教注册域名
  15. js 时间格式化转换
  16. AtCoder Beginner Contest 171 D - Replacing
  17. 向上滚动 终端_终端 - 如何在Linux控制台上向上/向下滚动?
  18. JavaScript两个实用的图片懒加载优化方法
  19. 资源整理 IC/FPGA
  20. 从画家到黑客:成功在于特立独行,不在于随波逐流

热门文章

  1. How to get list of all public urls which are using BSP UI technology
  2. How is assignment blocks of overview pages read from configuration
  3. Eclipse里不同的project,右键选择属性property facet里看到的list 内容是否相同
  4. SAP WebClient UI view controller所有可用的属性列表
  5. 给nodejs应用的package.json添加Redis服务的依赖
  6. SAP CRM WebClient UI上分销渠道点击展开按钮后执行了哪些逻辑
  7. 通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩
  8. Jerry的ABAP, Java和JavaScript乱炖
  9. 频域分析方法的理解(信号、频谱、能量谱、功率谱、倒频谱、小波分析)(终极教程)
  10. python加密解密库openssl_OpenSSL和Python实现RSA Key公钥加密私钥解密