php socket通信(tcp/udp)實(shí)例分析
本文實(shí)例講述了php socket通信(tcp/udp)方法。分享給大家供大家參考,具體如下:
注意
1.在socket_bind的時候ip地址不能真回環(huán)地址如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); ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php socket用法總結(jié)》、《PHP基本語法入門教程》、《PHP錯誤與異常處理方法總結(jié)》及《php常用函數(shù)與技巧總結(jié)》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP error_log()將錯誤信息寫入一個文件(定義和用法)
PHP error_log()定義和用法,帶有二個簡單小例子加函數(shù)解釋2013-10-10使用php數(shù)據(jù)緩存技術(shù)提高執(zhí)行效率
使用php緩存技術(shù)時為了提高效率。在大量的并發(fā)訪問面前,獲取數(shù)據(jù)可能成為效率的瓶頸,PHP實(shí)際開發(fā)之中針對數(shù)據(jù)處理進(jìn)行緩存。2022-12-12PHP讀取網(wǎng)頁文件內(nèi)容的實(shí)現(xiàn)代碼(fopen,curl等)
php小偷程序中經(jīng)常需要獲取遠(yuǎn)程網(wǎng)頁的內(nèi)容,下面是一些實(shí)現(xiàn)代碼,需要的朋友可以慘況下。2011-06-06php實(shí)現(xiàn)用已經(jīng)過去多長時間的方式顯示時間
這篇文章主要介紹了php實(shí)現(xiàn)用已經(jīng)過去多長時間的方式顯示時間,可實(shí)現(xiàn)相對時間的顯示效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-06-06PHP 向右側(cè)拉菜單實(shí)現(xiàn)代碼,測試使用中
PHP 向右側(cè)拉菜單實(shí)現(xiàn)代碼,測試使用中,需要的朋友可以測試下。2009-11-11使用PHP會話(Session)實(shí)現(xiàn)用戶登陸功能
本篇文章是對PHP會話(Session)實(shí)現(xiàn)用戶登陸功能進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06