socket監聽埠實現實時通訊

2021-07-25 16:57:43 字數 1900 閱讀 6264

socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用socket來做乙個api介面出來,也可以使用socket來實現兩個程式之間的通訊,我們來研究一下在php裡面如何實現socket通訊。(李昌輝)

1.php製作的socket服務端

主要功能是設定socket通訊的ip位址及埠號,監聽埠,有客戶端連線的話,接收連線請求接收資料,處理並且返回資料。

**如下:

//

確保在連線客戶端時不會超時

set_time_limit(0);

//設定ip和埠號

$address = "127.0.0.1";

$port = 2048; //

除錯的時候,可以多換埠來測試程式!/**

* 建立乙個socket

* af_inet=是ipv4 如果用ipv6,則引數為 af_inet6

* sock_stream為socket的tcp型別,如果是udp則使用sock_dgram

*/$sock = socket_create(af_inet, sock_stream, sol_tcp) or die("socket_create() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//阻塞模式

socket_set_block($sock) or die("socket_set_block() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//繫結到socket埠

$result = socket_bind($sock, $address, $port) or die("socket_bind() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//開始監聽

$result = socket_listen($sock, 4) or die("socket_listen() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

echo "ok\nbinding the socket on $address:$port ... ";

echo "ok\nnow ready to accept connections.\nlistening on the socket ... \n";

do

while (true

);socket_close(

$sock);

2.調取socket服務的客戶端檔案

set_time_limit(0);

$host = "127.0.0.1";

$port = 2048;

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

建立乙個socket

$connection = socket_connect($socket, $host, $port) or die("could not connet server\n"); //

連線socket_write($socket, "hello socket") or die("write failed\n"); //

資料傳送 向伺服器傳送訊息

while ($buff = @socket_read($socket, 1024,php_normal_read))

socket_close(

$socket);

這是乙個簡單的socket通訊的測試,至於socket接收到什麼資料,怎麼處理資料,返回什麼型別的資料,還需要使用php來做邏輯了。

完成埠實現echo tcp server

include stdio.h include winsock2.h pragma comment lib,ws2 32.lib define port 5150 define data bufsize 8192 typedef struct char buffer data bufsize int...

I O 完成埠實現

這篇文章是繼承上篇 windows 同步裝置 i o 與非同步裝置 i o 未讀過的讀者可以去看看再來看這篇文章哈。建立新的i o完成埠 i o完成可能是最複雜的windows核心物件了,為了建立乙個i o完成端 們需要呼叫createiocompletionport函式 handle winapi...

c cli 之非同步Socket完成埠例項

net 3.5的socket非同步完成埠 當時是c 寫的,主要是為了實際專案應用,一段時間過去後在使用過程中發現了一些小問題,並按照上級要求更改為c cli的 重新修改並再次發布,希望給c cli初學者一點點參考。如發現程式中問題希望告知於我!程式主要功能 1,使用.net 3.5 socketas...