php socket通信機制實例說明與代碼----什么是socket 所謂socket一般也稱作"套接字",用于描述ip地址和端口,是一個通訊鏈的句柄。使用程序一般經過"套接字"向network發(fā)出請求也許應對network請求。說白了就是一種通訊機制。它類似于銀行,電信啊這一些部分的電話客服業(yè)務單元。您打電話的時候,那邊會調設置一個人回答您的問題,客服業(yè)務單元就相當于socket的服務器端了,您這邊呢就相當于用戶端了,在和您通話完結前,假設有人在想找和您通話的那個談話是不可能的,由于您在和他通訊,當然客服業(yè)務單元的電話更換機也不會重復調配。
下面我將舉例子來說明一下,socket是怎樣工作的。假設您是基于使用層開發(fā)的人員并不一定要理解原理,然而能曉得那是更好了。網絡有對于socket的php api。下下來用就行了。
socket服務器server.php // 構建server端socket
$tcp = getprotobyname("tcp");
$socket = socket_create(af_inet, sock_stream, $tcp);
socket_bind($socket, '127.0.0.1', 10008); //綁定要監(jiān)聽的端口
socket_listen($socket); //監(jiān)聽端口
//初始化一個DATA,和用戶端通訊
$buffer = "connect";
while (true) { // 接受一個socket聯接
$connection = socket_accept($socket);
if(!$connection){
echo "connect fail";
}else{
echo "socket connectedn"; // 向用戶端傳送一個信息DATA
if ($buffer != "") {
echo "send data to clientn";
socket_write($connection, $buffer . "n");
echo "wrote to socketn";
} else {
echo "no data in the buffern" ;
} // 從用戶端獲得信息
while ($data = @socket_read($connection, 1024, php_normal_read)) {
printf("buffer: " . $data . "n"); //獲得信息給用戶端一個反響
socket_write($connection, "information receivedn");
}
}
socket_close($connection); //封鎖 socket
printf("closed the socketn");
}
?>
另外注意,socket用戶端client.php
// 構建用戶端的socet聯接
$socket = socket_create(af_inet, sock_stream, sol_tcp);
$connection = socket_connect($socket, '127.0.0.1', 10008); //聯接服務器端socket
while ($buffer = @socket_read($socket, 1024, php_normal_read)) { //服務端告訴用戶端,自身的形態(tài)
if (preg_match("/not connect/",$buffer)) {
echo "don`t connectn";
break;
} else { //服務器傳來信息
echo "buffer data: " . $buffer . "n";
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:phpsocket通信機制實例說明與代碼-創(chuàng)新互聯
網址分享:http://www.rwnh.cn/article18/csdigp.html
成都網站建設公司_創(chuàng)新互聯,為您提供用戶體驗、App設計、Google、網站營銷、網站導航、網站設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯