php socket程式設計 V客學院知識分享

2021-08-03 05:58:15 字數 2103 閱讀 4788



php socket程式設計

(v客學院知識分享

)

socket用於程序間通訊。程序間通訊通常基於客戶端—服務端模型。此時,客戶端—服務端是可以彼此互動的應用程式。客戶端和服務端之間的互動需要連線。

socket

程式設計負責的就是為應用程式之間建立可進行互動的連線。

下面主要講解用php建立乙個簡單的客戶端—服務端。我們還將學習如何客戶端應用程式如何傳送訊息到服務端,以及如何從服務端接受訊息。

第一部分:伺服器

第一:設定變數,如「主機」和「埠」

$host = "127.0.0.1";

$port = 5353;

// no timeout

set_time_limit(0);

注意:埠號可以是1024 -65535之間的任何正整數。

第二:建立socket

$socket = socket_create(af_inet, sock_stream, 0) or die("could not create socket\n");

第三:繫結socket到埠和主機

$result = socket_bind($socket, $host, $port) or die("could not bind to socket\n");

第四:啟動socket監聽

$result = socket_listen($socket, 3) or die("could not set up socket listener\n");

第五:接受連線

$spawn = socket_accept($socket) or die("could not accept incoming connection\n");

第六:從客戶端socket讀取訊息

$input = socket_read($spawn, 1024) or die("could not read input\n");

第七:反轉訊息

$output = strrev($input) . "\n";

第八:傳送訊息給客戶端socket

socket_write($spawn, $output, strlen ($output)) or die("could not write output\n");

第九:關閉socket

socket_close($spawn);

socket_close($socket);

第二部分:客戶端

第一:設定變數,如「主機」和「埠」

$host = "127.0.0.1";

$port = 5353;

set_time_limit(0);

第二:建立socket

$socket = socket_create(af_inet, sock_stream, 0) or die("could not create socket\n");

第三:連線到服務端

$result = socket_connect($socket, $host, $port) or die("could not connect toserver\n");

第四:寫入服務端socket

socket_write($socket, $message, strlen($message)) or die("could not send data to server\n");

第五:閱讀來自服務端的響應

$result = socket_read ($socket, 1024) or die("could not read server response\n");

echo "reply from server  :".$result;

第六:關閉socket

socket_close($socket);

總結:在socket程式設計的過程中,主要按照服務端,客戶端的程式格式執行,簡單容易上手。

(php開發、

web前端、

ui設計、

vr開發專業培訓機構-v客

it

PHP 物件導向程式設計(V客學院技術分享)

第一 什麼是物件導向 1.概念 一種計算機程式設計架構 2.原則 單個能夠起到子程式作用的單元或物件組合而成 3.目標 重用性 靈活性和擴充套件性 4.為了實現整體運算,每個物件都能夠接收資訊 處理資料和向其它物件傳送資訊。5.特點 首先,物件導向符合人類看待事物的一般規律。其次,採用物件導向方法可...

Js 函式式程式設計思想 (V客學院知識分享)

隨之ecmascript 標準規範不斷更新,現在已經更新到 es7,不久es8 規範即將面世,為了是 js 語法對函式程式設計更加友好,諸如 rxjs reactivex 等函式式框架的不斷 流行。函式式程式設計則應該是以函式做為艦載主體,然後對函式進行拆分封裝 更加抽象,可擴充套件性極強。與傳統命...

python scrapy版 極客學院爬蟲V2

jike.json 儲存json檔案 run.py 執行爬蟲 jkscrapy items.py 設定字段 pipelines.py 處理字段 settings.py 基本設定 init.py spiders jkspiders.py 爬蟲 1 在首頁中獲取標籤及課程對應的位址 2 egpython...