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...