php之socket入門教程

2021-08-07 08:11:14 字數 2620 閱讀 6109

socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。

基本步驟:

<?php 

echo

"****************server*****************\r\n";

//設定 ip 和 埠(埠必須保證不被占用,且允許被外部訪問)

$ip = "

127.0.0.1";

$port = 1935;//

超時設計

set_time_limit(0

);//

建立socket

$socket = socket_create(af_inet, sock_stream, 0) or die("

建立socket失敗,原因為:\r\n");

//繫結socket到指定ip和埠

$ret = socket_bind($socket, $ip, $port) or die("

繫結socket失敗,原因為:\r\n");

//監聽socket,最大等會數為4

$ret = socket_listen($socket, 4) or die("

監聽socket失敗,原因為:\r\n");

//計數

$count = 0

;echo

"等待連線!!!\r\n";

do\r\n";

}$msg = "

連線成功";

//處理客服端輸入並返回資料

socket_write($msgsock, $msg, strlen($msg));

$buf = socket_read($msgsock, 8192

); $talkback = "

收到的資訊為:\r\n";

echo $talkback;

if(++$count > 5

) socket_close($msgsock);

} while(true

);socket_close($socket);

基本步驟:

<?php 

echo

'****************client*****************';

//設定 ip 和 埠

$port = 1935

;$ip = '

127.0.0.1';

//超時設計

set_time_limit(0

);//

建立tcp協議的socket資源

$socket = socket_create(af_inet, sock_stream, sol_tcp) or die('

socket_create 失敗:

'.socket_strerror($socket));

echo

'建立成功';

$restult =socket_connect($socket, $ip, $port);

echo

'連線成功';

$in = '

建立乙個sokcet客服端成功,隨機編號=

'.rand(1000,9999

);if(socket_write($socket, $in, strlen($in

)))

else

while($out = socket_read($socket, 8192

)) echo

'socket關閉';

socket_close($socket);

echo

'關閉完成

';

服務端狀態:

到這裡socket的基本連線就差不多了。

8.1、socket_create

用於建立乙個socket資源,成功返回乙個套接字,失敗返回false;

詳情參考:

8.2、socket_bind

繫結乙個名稱到socket,成功返回true,失敗返回時false;

詳情參考:

8.3、socket_listen

監聽乙個socket資源,成功返回true,失敗返回時false;

詳情參考: 、

8.4、socket_accept

合法建立乙個子socket,成功返回乙個新的socket資源,失敗返回false;

詳情參考:

8.5、socket_read

讀取客服端傳送的資訊,成功返回讀取的資訊,否則返回空字串

(socket_read() returns a zero length string ("") when there is no more data to read.)

詳情參考:

8.6、socket_write

想socket寫入資料到快取

詳情參考:

8.7、socket_close

關閉socket資源

詳情參考:

8.8、socket_strerror

獲取錯誤資訊

詳情參考:

php之socket入門教程

socket是應用層與tcp ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。基本步驟 echo server r ...

Perl Hash用法之入門教程

本文和大家重點討論一下perl hash的用法,雜湊是一種資料結構,和陣列類似,但是,和陣列不同的是,其索引不是數字,而是名字。也就是說,索引 這裡,我們將它叫key 不是數字而是任意的唯一的字串。雜湊是一種資料結構,和陣列類似,可以將值存放到其中,或者從中取回值。但是,和陣列不同的是,其索引不是數...

wxPython之Boa IDE入門教程

最近開發一款小軟體,找到了wxpython這個東東,感覺還不錯就是sizer神馬的用起來有點費勁,主要原因是剛開始不了解各個引數的意義,於是找到了boa這個神器,起碼短期內解決了我的問題。總體而言,boa可以作為wxpython入門的利器之一。首先,boa更適合執行與windows環境下,在linu...