《PHP應(yīng)用:php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法》要點(diǎn):
本文介紹了PHP應(yīng)用:php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例講述了php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)辦法.分享給大家供大家參考.具體如下:PHP應(yīng)用
這里提供了在php中socket相關(guān)函數(shù)的一個實(shí)例,如創(chuàng)建Socket,接受一個socket連接 ,寫入一個Socket及初始化連接等操作,具體實(shí)例代碼如下:
PHP應(yīng)用
代碼如下:
$ip="127.0.0.1";????????? //定義ip地址
$port=1000;?????????? //定義端口
$socket=socket_create(af_inet,sock_stream,sol_tcp);? //創(chuàng)建socket
$bind=socket_bind($socket,$ip,$prot);????? //綁定一個socket
$listen=socket_listen($socket);??????? //監(jiān)聽socket
$msg=socket_accept($socket);??????? //接受一個socket連接
$welcome="歡迎來到php服務(wù)/n";?????? //定義字符串
socket_write($msg,$welcome,strlen($welcome));??? //寫入一個socket
socket_close($socket);???????? //關(guān)閉socket
?
*/
?
$ip="127.0.0.1";????????? //定義ip地址
$port=1000;?????????? //定義端口
$socket=socket_create(af_inet,sock_stream,sol_tcp);? //創(chuàng)建socket
socket_clear_error($socket);??????? //清空socket錯誤信息
socket_close($socket);???????? //關(guān)閉socket
?
/*
?
*/
$sockets=array();?????????? //定義一個數(shù)組
/*建立一對socket,并存儲在數(shù)組中*/
if(!socket_create_pair(af_unix,sock_stream,0,$sockets))?? //如果socket沒有成功創(chuàng)建
{
? echo socket_strerror(socket_last_error());????? //輸出錯誤信息
}
/*使用創(chuàng)建的socket收發(fā)信息*/
if(!socket_write($sockets[0],"abcdef123n",strlen("abcdef123n")))? //如果執(zhí)行socket寫失敗
{
? cho socket_strerror(socket_last_error());????? //輸出錯誤信息
}
if(!$data=socket_read($sockets[1],strlen("abcdef123n"),php_binary_read)) //如果讀取信息失敗
{
? echo socket_strerror(socket_last_error());????? //輸出錯誤信息
}
var_dump($data);?????????? //輸出socket數(shù)據(jù)信息
/*關(guān)閉socket*/
socket_close($sockets[0]);???????? //關(guān)閉socket1
socket_close($sockets[1]);???????? //關(guān)閉socket2
?
/*
*/
?
$ip="127.0.0.1";????????? //定義ip地址
$port=1000;?????????? //定義端口
$socket=socket_create(af_inet,sock_stream,sol_tcp);? //創(chuàng)建socket
socket_set_nonblock($socket);??????? //設(shè)置不鎖定狀態(tài)
socket_connect($socket,$ip,$port);?????? //初始化連接
socket_set_block($sock);???????? //鎖定socket
switch(socket_select($r=array($socket),$w=array($socket),$f=array($socket),5))
{
? case 2:
??? echo "連接被拒絕!n";
??? break;
? case 1:
??? echo "成功連接n";
??? break;
? case 0:
??? echo "連接超時n";
??? break;
}
?
/*
?
*/
?
/*以下代碼定義一個socket監(jiān)聽類*/
class socketlistener extends socket
{
? function __construct($port=null)??????? //定義__construct辦法
? {
??? $this->stream=@socket_create_listen($port?$port:port);?? //打開端口接受連接
? }
? function isactive()?????????? //定義isactive辦法
? {
??? if($this->stream)?????????? //如果有連接
??? {
????? return true;?????????? //返回真值
??? }
??? else???????????? //無連接
??? {
????? return false;?????????? //返回假值
??? }
? }
}
希望本文所述對大家的php程序設(shè)計(jì)有所幫助.PHP應(yīng)用
歡迎參與《PHP應(yīng)用:php中Socket創(chuàng)建與監(jiān)聽實(shí)現(xiàn)方法》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12831.html