phpudp
A. php能發UDP包出去嗎
可以,TCP套接字,UDP套接字,原始套接字都可以發,不過PHP處理的99%的應用是TCP套接字類型。
B. php socket udp 通信
與設備發送數據的程序編寫人協調,在發送的數據前面添加一個標識設備ID的內容版,這樣接收數權據後從數據判斷設備號,而不是通過IP和PORT。
例如約定用兩位數表示設備ID,那麼設備01發送的數據是AAAAA修改為發送01AAAAA,收到數據後識別01為設備號,後面的AAAAA作為數據。
C. 如何用php 寫udp socket的服務端和客戶端
可以使用php的sockets擴展,自己寫著比較麻煩。
這里推薦兩個具有該功能的框架:Swoole,
Workerman
D. PHP發送數據到IP TCP/UDP
php是腳本語言,估計無法實現你這個願望。
以前的高手是通過CGI來實現的,就是版因為CGI是應用程序,安全權性不好,所以後來才流行PHP這類腳本語言的(就好像以前電腦上都是administrator,現在都是用戶自己的賬戶了一樣)。
E. PHP服務端監聽UDP通信方式
例子代碼:
<?php
$sock=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP);
$msg="Ping!";
$len=strlen($msg);
socket_sendto($sock,$msg,$len,0,'127.0.0.1',1223);
socket_close($sock);
?>
查看手冊中相關的函數就知道進一步應該怎麼編程。
F. PHP中如何實現非阻塞UDP
你好
很高興為您解答
select函數應該是針對你在參數表中列出的事件進行選擇性處理的,比如,機器會自動監聽,當發現有列表中的事件發生時,就會調用相應的操作,不過,調用什麼操作也要事先定義。
G. php如何檢測UDP協議的暢通性
下面是php使用udp協議的代碼,想輸出什麼,自己修改就好了。
//伺服器和介面
$server = 'udp://127.0.0.1:9999';
$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
die("$errstr ($errno)");
}else{
echo 'Connection to '.$server.'succeeded!';
}
H. 怎樣使用php實現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); ?>
I. 下面哪個網路協議是php不支持的
這是什麼問題啊
問的就有問題.php
是一種腳本
和
網路協議也沒關系啊.只有應用程序才能說支持不支持什麼網路協議.如果非要和網路協議拉上關系的話那隻能說php腳本支持網路協議tcp/ip
希望可以幫助到你
望點贊哦
謝謝
如果還有問題,可以繼續追問,感謝。