php创建udp Server

<?php
//服务器信息
$server = ‘udp://127.0.0.1:7002‘;
//----UDP Server
$msgEof = "\n";
$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
die($errstr.$errno);
}

do {
//接收客户端发来的信息
$inMsg = stream_socket_recvfrom($socket, 2048, 0, $peer);
//服务端打印出相关信息
//echo "Client : $peer\n";
//echo "Receive : {$inMsg}";
$inMsg = $inMsg . date(‘Y-m-d H:i:s‘);
//给客户端发送信息
file_put_contents("./tsrv.log", $inMsg, FILE_APPEND);
$outMsg = substr($inMsg, 0, (strrpos($inMsg, $msgEof))).‘|date:‘.date("Y-m-d H:i:s"."\n");
stream_socket_sendto($socket, $outMsg, 0, $peer);

} while ($inMsg !== false);

//----UDP client
function udpGet($sendMsg = ‘‘, $ip = ‘127.0.0.1‘, $port = ‘7001‘){
$handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr);
if( !$handle ){
die("ERROR: {$errno} - {$errstr}\n");
}
fwrite($handle, $sendMsg."\n");
$result = fread($handle, 1024);
fclose($handle);
return $result;
}

$result = udpGet(‘Hello World‘);
echo $result;
~

时间: 2024-10-07 05:43:07

php创建udp Server的相关文章

epoll简介 与 UDP server的实现

Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率. 简介:epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为: 它会复用文件描述符集合来传递结果, 而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因:

uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clientport设置为0了,我通过将原始数据包中的clientport保存下来,而且在发送的时候将clientport替换为指定的port,发送完毕之后又设置为0,这样就实现了向随意clientport发送数据. uip.c if(uip_udp_conn->lport != 0 && UDP

node.js中通过dgram数据报模块创建UDP服务器和客户端

node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dgram.createSocket('udp4'); //绑定端口和主机地址 server.bind(8888, '1

简单的如何创建sql server存储过程

学习sql server数据库,sql server存储过程的建立方法是一定要知道的,下面将教您如何建立sql server存储过程,希望对您有所帮助. 在对象资源管理器中,连接到某个数据库引擎实例,再展开该实例. 展开“数据库”.sql server存储过程所属的数据库以及“可编程性”. 右键单击“存储过程”,再单击“新建存储过程”. 在“查询”菜单上,单击“指定模板参数的值”. 在“指定模板参数的值”对话框中,“值”列包含参数的建议值.接受这些值或将其替换为新值,再单击“确定”. 在查询编辑

创建link server链接服务器碰到的问题及解决办法

问题描述 今天在做数据库迁移,然后新建link server(链接服务器)的时候,碰到以下问题. 我的sql 脚本是这样的. 然后,执行的时候就收到以下错误信息. Msg 468, Level 16, State 9, Line 7 Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal t

VM10.0上创建Windows server 2008 SP2,并且,安装loadrunner11

用了一天的时间在VM10.0上创建了一台Windows server 2008 standard SP2的虚拟机,然后,在该虚拟机上安装了loadrunner11.0,过程中遇到最大的麻烦就是找安装包.补丁,不过网络真是一个大的知识园地,它才不会嫌弃你是否问题太多,哈哈~ 一.创建Windows server 2008 standard SP2: 首先,在网上找到一个Windows server 2008 standard 操作系统的镜像文件(即:6001.18000.080118-1840_x

获取创建SQL Server对象的定义文本

引用自<SQL Server 2012 Internals> "   As views, these metadata objects are based on an underlying Transact-SQL (T-SQL) defnition. The most straightforward way to see the defnition of these views is by using the object_defnition function. (You can

eclipse中删除tomcat server 导致不能重新创建该server

定位到:workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings 1 打开org.eclipse.jst.server.tomcat.core.prefs,删除里面之前创建的tomcat 2 打开org.eclipse.wst.server.core.prefs,删除里面之前创建的tomcat 两文件只需要保留eclipse.preferences.version=1即可 参考:http://www.07net01.com/2

安装VMware workstation以及创建windows server 2012 R2

windows server 2012 R2是服务器的一种,在此之前还有windows server 2003.windows server 2008,不过现在windows server 2003已经过期了,而且在windows server 2012 R2出版之后,windows server 2008页应经停止销售了,所以在一般的企业里使用的都是windows server 2012 R2.VMware是虚拟机,在我们的计算机里服务器只能借助VMware的平台才可以打开,首先要学会安装VM