PHP 結合例項認識 Socket

2022-01-31 20:55:13 字數 1706 閱讀 3347

(本部分參考自 揭開socket的神秘面紗 - 原始碼工作室)

請結合下圖 socket 抽象層的位置來理解。socket 是應用層和 tcp/ip 協議族進行通訊的中間軟體抽象層,是一組介面。在設計模式中,就是乙個門面模式,它把複雜的實現封裝在介面後面,而只提供了一組簡單的介面給使用者呼叫。在普遍的程式語言中,這些介面一般是 create、bind、listen、accept、write、read、close 和 connect 等等。

效果圖

服務端:server.php

<?php 

set_time_limit(0); // 去掉時間限制

ob_implicit_flush(); // 開啟強制重新整理

// 1. 建立socket

$socket = socket_create(af_inet, sock_stream, sol_tcp);

// 2. 繫結埠和ip

socket_bind($socket, '127.0.0.1', 11279);

// 3. 埠監聽

socket_listen($socket);

echo 'server is listening!' . php_eol;

// 4. accept阻塞程序

$connect = socket_accept($socket); // 直到有連線進入,accept才會返回

echo 'client [' . $connect . '] is accessing...' . php_eol;

// 5. 互動

socket_write($connect, 'welcome, visitor! now you can send message to the server.' . php_eol);

while ($connect)

// 傳送響應

$response = 'your sended message: ' . $request;

socket_write($connect, $response);

}// 6. 銷毀socket

socket_close($socket);

客戶端:client.php

<?php 

// 1. 建立socket

$socket = socket_create(af_inet, sock_stream, sol_tcp);

// 2. 建立連線

$result = socket_connect($socket, '127.0.0.1', 11279);

if($result === false)

// 3. 互動

while($result)

}// 4.銷毀socket

socket_close($socket);

揭開socket程式設計的面紗

【phpsocket程式設計專題(理論篇)】初步理解tcp/ip、http、socket.md

php socket通訊(tcp/udp)例項分析

php 例項說明 socket通訊機制

一.socket是什麼 什麼是socket 所謂socket通常也稱作 套接字 用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程式通常通過 套接字 向網路發出請求或者應答網路請求。說白了就是一種通訊機制。它類似於銀行,電信啊這些部分的 客服部門。你打 的時候,那邊會分配置乙個人回答你的問題,客服...

php 例項說明 socket通訊機制

一,socket是什麼 什麼是socket 所謂socket通常也稱作 套接字 用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程式通常通過 套接字 向網路發出請求或者應答網路請求。說白了就是一種通訊機制。它類似於銀行,電信啊這些部分的 客服部門。你打 的時候,那邊會分配置乙個人回答你的問題,客服...

php 例項說明 socket通訊機制

張映 發表於 2010 04 24 一,socket是什麼 什麼是socket 所謂socket通常也稱作 套接字 用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程式通常通過 套接字 向網路發出請求或者應答網路請求。說白了就是一種通訊機制。它類似於銀行,電信啊這些部分的 客服部門。你打 的時候,...