socket通訊的原理在這裡就不說了,它的用途還是比較廣泛的,我們可以使用socket來做乙個api介面出來,也可以使用socket來實現兩個程式之間的通訊,我們來研究一下在php裡面如何實現socket通訊。(李昌輝)
1.php製作的socket服務端
主要功能是設定socket通訊的ip位址及埠號,監聽埠,有客戶端連線的話,接收連線請求接收資料,處理並且返回資料。
**如下:
//2.調取socket服務的客戶端檔案確保在連線客戶端時不會超時
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);
set_time_limit(0);這是乙個簡單的socket通訊的測試,至於socket接收到什麼資料,怎麼處理資料,返回什麼型別的資料,還需要使用php來做邏輯了。$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);
完成埠實現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...