php socket通信(tcp/udp)

注意 

  1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1

  2.server.php后台跑起来的时候 nohup php server.php > /var/tmp/a.log 2>&1 &

一: udp 方式

1) server.php

<?php//error_reporting( E_ALL );set_time_limit( 0 );ob_implicit_flush();$socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );if ( $socket === false ) {echo 'socket_create() failed:reason:' . socket_strerror( socket_last_error() ) . '\n';}$ok = socket_bind( $socket, '202.85.218.133', 11109 );if ( $ok === false ) {echo 'socket_bind() failed:reason:' . socket_strerror( socket_last_error( $socket ) );}while ( true ) {$from = '';$port = 0;socket_recvfrom( $socket, $buf,1024, 0, $from, $port );echo $buf;usleep( 1000 );}?>

2) client.php

<?php$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);$msg = 'hello';$len = strlen($msg);socket_sendto($sock, $msg, $len, 0, '202.85.218.133', 11109);socket_close($sock);?>

二: TCP 方式

1)server.php

<?php//error_reporting( E_ALL );set_time_limit( 0 );ob_implicit_flush();$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );socket_bind( $socket, '192.168.2.143', 11109 );socket_listen($socket);$acpt=socket_accept($socket);echo 'Acpt!\n';while ( $acpt ) {$words=fgets(STDIN);socket_write($acpt,$words);$hear=socket_read($acpt,1024);echo $hear;if('bye\r\n'==$hear){socket_shutdown($acpt);break;}usleep( 1000 );}socket_close($socket)?>

2) client.php

<?php$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);$con=socket_connect($socket,'192.168.2.143',11109);if(!$con){socket_close($socket);exit;}echo 'Link\n';while($con){$hear=socket_read($socket,1024);echo $hear;$words=fgets(STDIN);socket_write($socket,$words);if($words=='bye\r\n'){break;}}socket_shutdown($socket);socket_close($sock);?>
(0)

相关推荐

  • Python网络编程

    TCP 客户端与服务器之间建立连接需要进行三次握手 客户端--->服务器  服务器--->客户端  客户端--->服务器,这样做的好处是可以保证数据的完整缺点是慢. UDP 是用户数 ...

  • 了解PHP-FPM

    在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢? PHP-FPM简介 PHP-FPM,就是PHP的FastCGI管理器,用 ...

  • day21 网络编程(下)

    版权声明:本博客转载自路飞学城Python全栈开发培训课件,仅用于学习之用,严禁用于商业用途. 欢迎访问路飞学城官网:https://www.luffycity.com/ 课程目标:学会网络编程开发的 ...

  • 川崎机器人-以太网连接的TCP/IP通信功能(TCP/UDP通讯命令)······

    川崎机器人-以太网连接的TCP/IP通信功能(TCP/UDP通讯命令)&#183;&#183;&#183;&#183;&#183;&#183;

  • Socket通信原理

    嵌入式专栏 1 关于Socket 学习过网络编程,或者网络开发的朋友都应该听说过socket. socket又叫套接字,是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读 ...

  • 面试中关于TCP UDP HTTP HTTPS的问题

    大家面试中问到这个问题该怎么答. 首先我把概念和之间的关系给大家简单的说下: http:是用于www浏览的一个协议. tcp:是机器之间建立连接用到的一个协议 1.TCP/IP 是个协议组,可分为三个 ...

  • c#Socket通信实例

    在上一篇文章中介绍了Socket基础-TCP与UDP协议和他们之间的区别,这篇文章参考另一位前辈的博文重点记录下Socket的原理及两种协议的开发过程. 一.Socket通信简介 1.按惯例先来介绍下 ...

  • C# Socket通信 Networkstream数据接收不全 | Code Bye

    c/s客户端用C#的Socket进行通信.开单独的接收线程使用networkstream进行数据接收 方法大体上跟网上流传的一样 do {    int readSize = mNetworkstre ...

  • 基于西门子PLC的Socket通信深度剖析

    对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌:而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式.西门子的200Smart PLC, ...

  • TCP/UDP常见端口

    HTTP Content-type HTML转义字符 RGB颜色参考 ASCII对照表 HTTP状态码详解 运算符优先级 TCP/UDP常见端口参考 网页字体参考 下面的表格中列举了包括在红帽企业 L ...

  • 基于FPGA的千兆以太网TCP/UDP 硬件协议栈(包含UDP开源代码)

    前一段时间我们发过一篇:千兆以太网 TCP/UDP协议FPGA实现 , 今天我们把相关文档提供出来了,供大家参考学习.

  • Python网络编程基础及socket之TCP收发消息及文件

    网络编程必须了解的基本概念 MAC地址:是全球唯一标示的网络接口,每一个网卡接口.交换机接口.路由器接口的mac地址均不相同.mac地址是通信子网内部相互通信的标识,交换机根据mac地址区分用户.ma ...