PHP监听Socket

<?phpset_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
监听
php socket 监听端口、socket 监听、websocket监听数据库、java socket监听端口、socket监听端口,以便于您获取更多的相关知识。

时间: 2025-01-27 05:56:45

PHP监听Socket的相关文章

tcp连接-TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗?

问题描述 TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗? 比如用来监听连接的socket绑定23端口,服务端每接受一个连接都新开一个线程和客户端通信,并把新socket传递给新线程,是不是所有新创建的socket都是经过23端口和客户端通信? 解决方案 是的,都通过端口23进行通信 解决方案二: 都是监听端口,如果不是客户端就不能将数据发送到服务器 解决方案三: 23只是监听建立连接,后续数据交换走实际上端口

多线程问题!!同时监听socket和串口

问题描述 多线程问题!!同时监听socket和串口 我要写一个软件,其中需要同时监听socket和串口.socket监听的内容为采集的数据信息,串口监听得到的消息用来控制socket停止接收数据.现在使用了Windows的定时器settimer间隔一定时间接收一次socket的数据:开辟了一个新的线程用于等待串口的消息,使用waitforsingleobject无限期地等待串口发来命令.但是现在的问题就是如果一直监听串口就无法接受socket发来的数据:如果不实时监听串口而是间隔一段时间再监听,

有什么好的方法让服务器socket监听数据更新呢

问题描述 服务端:packageSocketTest;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{publicstaticvoidmain(String[]args){ServerS

php中Socket创建与监听实现方法_php技巧

本文实例讲述了php中Socket创建与监听实现方法.分享给大家供大家参考.具体如下: 这里提供了在php中socket相关函数的一个实例,如创建Socket,接受一个socket连接 ,写入一个Socket及初始化连接等操作,具体实例代码如下: 复制代码 代码如下: $ip="127.0.0.1";          //定义ip地址 $port=1000;           //定义端口 $socket=socket_create(af_inet,sock_stream,sol_

php Socket 创建 监听等实例

$ip="127.0.0.1";          //定义ip地址 $port=1000;           //定义端口 $socket=socket_create(af_inet,sock_stream,sol_tcp);  //创建socket $bind=socket_bind($socket,$ip,$prot);      //绑定一个socket $listen=socket_listen($socket);        //监听socket $msg=socket

我写的socket监听过一段时间就需要重新启动一下程序是什么原因

问题描述 我写的socket监听过一段时间就需要重新启动一下程序是什么原因 private void StartReceive() { string msg = null; IPEndPoint iep = new IPEndPoint(IPAddress.Parse(PublicVariables.BJIP), PublicVariables.PORT); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Pr

android-Android开发监听跳转SOCKET进程的问题

问题描述 Android开发监听跳转SOCKET进程的问题 10C 本人写了一个程序,播放一个音频文件,如果点击xml文件的播放按钮,直接跳转到Socket进程,并把这个音频文件发送到指定服务器,请问这个跳转以及文件地址的传递该怎么写 解决方案 可以看看http://blog.csdn.net/junfeng120125/article/details/8187378 永不放弃的IT码农的博客文章 解决方案二: 唉??你上传文件为啥要用socket呢,为啥不用http上传呢?你的服务器不支持吗?

怎么关掉socket监听

问题描述 环境linuxwas我的web应用部署在was下,有一个socket监听程序,启动时单独起了一个线程去启动socket监听,但是怎么才能在关闭web应用时将socket一起关掉呢?socket的进程是由was管理的,总不能每次重启应用都要把was重启了吧

如何停止Socket的监听,断开已有的客户端链接?

问题描述 做了个server端,发现监听后停止不了,调用了socket.close后也不行客户端依然可以发送数据过来,新的客户端也依然可以接进来,这是怎么回事?参考了几个网上的例子也没用. 解决方案 解决方案二:lz使用的tcpserver还是直接封装的socket其实要断开所有连接,应该在accept环节做文章只要accept被禁了,客户端是连不进来的解决方案三:1.对Accept所在线程直接用Abort()2.Socket对象直接Dispose()解决方案四:引用1楼xian_wwq的回复: