使用socket系列函数实现连接TCP服务
首先需要先有一个 tcp 服务,我们使用 php中的 socket 系列函数实现
<?php //创建socket套接字 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //设置阻塞模式 socket_set_block($socket); //为套接字绑定ip和端口 socket_bind($socket,'127.0.0.1',3046); //监听socket socket_listen($socket,4); while(true) { //接收客户端请求 if(($msgsocket = socket_accept($socket)) !== false) { //读取请求内容 $buf = socket_read($msgsocket, 8192); echo "Received msg: $buf \n"; $str = "this is a service message"; //向连接的客户端发送数据 socket_write($msgsocket, $str,strlen($str)); //操作完之后需要关闭该连接否则 feof() 函数无法正确识别打开的句柄是否读取完成 socket_close($msgsocket); } }
连接 tcp 服务:
使用 socket 系列函数连接
<?php $st="socket send message"; $length = strlen($st); //创建tcp套接字 $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); //连接tcp socket_connect($socket, '127.0.0.1',3046); //向打开的套集字写入数据(发送数据) $s = socket_write($socket, $st, $length); //从套接字中获取服务器发送来的数据 $msg = socket_read($socket,8190); echo $msg; //关闭连接 socket_close($socket);
使用 fsockopen 连接
<?php //使用 fsockopen 打开tcp连接句柄 $fp = fsockopen("tcp://127.0.0.1",3046); $msg = "fsockopen send message"; //向句柄中写入数据 fwrite($fp,$msg); $ret = ""; //循环遍历获取句柄中的数据,其中 feof() 判断文件指针是否指到文件末尾 while (!feof($fp)){ stream_set_timeout($fp, 2); $ret .= fgets($fp, 128); } //关闭句柄 fclose($fp); echo $ret;
使用 stream_socket_client 连接
<?php //使用 stream_socket_client 打开 tcp 连接 $fp = stream_socket_client("tcp://127.0.0.1:3046"); $msg = "fsockopen send message"; //向句柄中写入数据 fwrite($fp,$msg); $ret = ""; //循环遍历获取句柄中的数据,其中 feof() 判断文件指针是否指到文件末尾 while (!feof($fp)){ stream_set_timeout($fp, 2); $ret .= fgets($fp, 128); } //关闭句柄 fclose($fp); echo $ret;
相关文章教程推荐:php教程
以上是使用socket系列函数实现连接TCP服务的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

更新了最新的win11系统之后有不少的用户不清楚该怎么连接手柄进行游戏,为此我们今天专给你们带来了win11连接手柄详细教程,如果你还没有完成连接就来看看怎么操作吧。win11怎么连接手柄:1、点击下方的开始然后进入windows设置开启“控制面板”。2、进入之后就可以找到“查看设备和打印机”进行进入。3、此时你能够看到手柄设备的信息,进行连接就行了。4、连接成功之后出现一个√,就可以完成连接了。

很多时候我们都需要用电脑来连接打印机进行各种打印的操作,但是有时候一些用户会遇到win7无法连接打印机0x0000011b这种问题情况,下面就是具体的应对解决方法。win7无法连接打印机0x0000011b1、快捷键“win+r”,输入“regedit”2、找到以下路径“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print”3、右键新建值“DWORD(32位)值(D)并且数值设置为0。将新建项目命名为“RpcAuthnLevelPri

keep体脂秤怎么连接?keep是有专门设计的体脂秤,但是多数的用户不知道如何连接keep的体脂秤,接下来就是小编为用户带来的keep体脂秤连接方法图文教程,感兴趣的用户快来一起看看吧!keep体脂秤怎么连接1、首先打开keep软件,进入到主页面点击右下角【我的】选择其中的【智能硬件】;2、然后在我的智能设备页面,中间【添加设备】按钮;3、之后在选择你要添加的设备界面,选择【智能体脂/体重秤】;4、接着在选择设备型号页面,点击【keep体脂秤】选项;5、最后在下图所示的界面,最底部的【立即添加】

大家在使用Edge浏览器访问网页的时候,有遇到提示你的连接不是专用连接,导致网页浏览失败的情况吗?这是怎么回事?很多小伙伴遇到这种问题都不知道如何处理,可以看看下面三个解决办法。 方法一(简单粗暴):在edge浏览器中,您可以通过进入设置并关闭安全性功能,然后在网站权限中阻止位置权限来尝试解决原先报错的网站无法访问的问题。需要注意的是,这种方法的有效性和持续时间可能会有所不同,无法确定具体的效果。重新启动浏览器后,您可以尝试访问该网站,看看是否问题得到解决。 方法二: 调整键盘为英文输

win10如何重置tcp/ip协议?其实方法很简单的,用户们可以直接的进入到命令提示符,然后按下ctrl+shift+enter的组合键来进行操作就可以了或者是直接的执行重置命令来进行设置,下面就让本站来为用户们来仔细的介绍一下windows10重置tcp/ip协议栈的方法吧。windows10重置tcp/ip协议栈的方法一、管理员权限1、我们使用快捷键win+R直接打开运行窗口,然后输入cmd并按住ctrl+shift+enter的组合键。2、或者我们可以直接在开始菜单中搜索命令提示符,右键点

Win10连接网络受限制解决办法随着科技的快速发展,网络已经成为了人们生活中不可或缺的一部分。然而,有时我们在使用Windows10操作系统的电脑连接网络时可能会遇到一些问题,其中之一就是连接受限制。这种情况下,我们无法正常访问网页、下载文件或者使用网络功能。那么,有什么办法能够解决这个问题呢?本文将为您介绍几种常见的解决办法。一、检查网络连接设置首先,我

随着数字化时代的发展,共享打印机成为现代办公环境中不可或缺的一部分。然而,有时我们可能会遇到共享打印机无法连接到打印机的问题,这不仅会影响工作效率,还会带来一系列麻烦。本文旨在探讨共享打印机无法连接到打印机的原因和解决方法。共享打印机无法连接到打印机的原因有很多,其中最常见的原因是网络问题。如果共享打印机与打印机之间的网络连接不稳定或中断,那么就无法进行正常

连接打印机0x0000011b是什么意思在使用电脑、笔记本或者其他设备时,用户常常会遇到各种错误代码。其中,0x0000011b是一种常见的打印机连接错误代码。那么,连接打印机0x0000011b到底是什么意思呢?首先,我们需要了解一下打印机连接的基本原理。当我们需要从电脑上打印文件时,通常需要将打印机连接到电脑上,以便二者之间进行数据传输。这种连接可以通过
