亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP Socket編程起步

2024-05-05 00:11:04
字體:
來源:轉載
供稿:網友

讓我們以一個簡單的例子開始---一個接收輸入字符串,處理并返回這個字符串到客戶端的TCP服務.下面是相應的代碼:

PHP 代碼:

<?
// 設置一些基本的變量
$host="192.168.1.99"
;
$port=1234
;
// 設置超時時間
set_time_limit(0
);
// 創建一個Socket
$socket=socket_create(AF_INET,SOCK_STREAM,0) or die(
"Could not create
socket/n"
);
//綁定Socket到端口
$result=socket_bind($socket,$host,$port) or die(
"Could not bind to
socket/n"
);
// 開始監聽鏈接
$result=socket_listen($socket,3) or die(
"Could not set up socket
listener/n"
);
// accept incoming connections
// 另一個Socket來處理通信
$spawn=socket_accept($socket) or die(
"Could not accept incoming
connection/n"
);
// 獲得客戶端的輸入
$input=socket_read($spawn,1024) or die("Could not read input/n"
);
// 清空輸入字符串
$input=trim($input
);
//處理客戶端輸入并返回結果
$output=strrev($input) ."/n"
;
socket_write($spawn,$output,strlen($output)) or die(
"Could not write
output/n"
);
// 關閉sockets
socket_close($spawn
);
socket_close($socket
);
?>
下面是其每一步驟的詳細說明:

1.第一步是建立兩個變量來保存Socket運行的服務器的IP地址和端口.你可以設置為你自己的服務器和端口(這個端口可以是1到65535之間的數字),前提是這個端口未被使用.

PHP 代碼:
<?
// 設置兩個變量
$host="192.168.1.99"
;
$port=1234
;
?>
2.在服務器端可以使用set_time_out()函數來確保PHP在等待客戶端連接時不會超時.

PHP 代碼:
<?
// 超時時間
set_time_limit(0
);
?>
3.在前面的基礎上,現在該使用socket_creat()函數創建一個Socket了---這個函數返回一個Socket句柄,這個句柄將用在以后所有的函數中.

PHP 代碼:
<?
// 創建Socket
$socket=socket_create(AF_INET,SOCK_STREAM,0) or die(
"Could not create socket/n");
?>
第一個參數"AF_INET"用來指定域名;
第二個參數"SOCK_STREM"告訴函數將創建一個什么類型的Socket(在這個例子中是TCP類型)

因此,如果你想創建一個UDP Socket的話,你可以使用如下的代碼:

PHP 代碼:
<?
// 創建 socket
$socket=socket_create(AF_INET,SOCK_DGRAM,0) or die(
"Could not create socket/n");
?>
4.一旦創建了一個Socket句柄,下一步就是指定或者綁定它到指定的地址和端口.這可以通過socket_bind()函數來完成.

PHP 代碼:
<?
// 綁定 socket to 指定地址和端口
$result=socket_bind($socket,$host,$port) or die(
"Could not bind to socket/n");
?>
5.當Socket被創建好并綁定到一個端口后,就可以開始監聽外部的連接了.PHP允許你由socket_listen()函數來開始一個監聽,同時你可以指定一個數字(在這個例子中就是第二個參數:3)

PHP 代碼:
<?
// 開始監聽連接
$result=socket_listen($socket,3) or die(
"Could not set up socket listener/n");
?>
6.到現在,你的服務器除了等待來自客戶端的連接請求外基本上什么也沒有做.一旦一個客戶端的連接被收到,socket_assept()函數便開始起作用了,它接收連接請求并調用另一個子Socket來處理客戶端--服務器間的信息.

PHP 代碼:
<?
//接受請求鏈接
// 調用子socket 處理信息
$spawn=socket_accept($socket) or die(
"Could not accept incoming connection/n");
?>
這個子socket現在就可以被隨后的客戶端--服務器通信所用了.

7.當一個連接被建立后,服務器就會等待客戶端發送一些輸入信息,這寫信息可以由socket_read()函數來獲得,并把它賦值給PHP的$input變量.

PHP 代碼:
<?
// 讀取客戶端輸入
$input=socket_read($spawn,1024) or die("Could not read input/n"
);
?>
socker_read的第而個參數用以指定讀入的字節數,你可以通過它來限制從客戶端獲取數據的大小.

注意:socket_read函數會一直讀取殼戶端數據,直到遇見/n,/t或者/0字符.PHP腳本把這寫字符看做是輸入的結束符.

8.現在服務器必須處理這些由客戶端發來是數據(在這個例子中的處理僅僅包含數據的輸入和回傳到客戶端).這部分可以由socket_write()函數來完成(使得由通信socket發回一個數據流到客戶端成為可能)

PHP 代碼:
<?
// 處理客戶端輸入并返回數據
$output=strrev($input) ."/n"
;
socket_write($spawn,$output,strlen($output)) or die(
"Could not write output/n");
?>
9.一旦輸出被返回到客戶端,父/子socket都應通過socket_close()函數來終止

PHP 代碼:
<?
// 關閉 sockets
socket_close($spawn
);
socket_close($socket
);
?>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产男女猛烈无遮挡91| 亚洲jizzjizz日本少妇| 97视频在线观看免费| 久久久久久97| 法国裸体一区二区| 国产成人+综合亚洲+天堂| 欧美日韩国产中文精品字幕自在自线| 亚洲欧美国产另类| 色偷偷91综合久久噜噜| …久久精品99久久香蕉国产| 亚洲视频在线观看视频| 日韩精品福利网站| 亚洲自拍偷拍色片视频| 欧美在线视频观看免费网站| 亚洲精品久久久久久久久久久| 亚洲黄色成人网| 色婷婷久久一区二区| 欧美日韩精品国产| 国产精品视频精品| 亚洲日韩中文字幕在线播放| 久久久99久久精品女同性| 亚洲国产精品嫩草影院久久| 伊人久久男人天堂| 亚洲aaaaaa| 亚洲精品动漫久久久久| 久久精品一区中文字幕| 国产成人精品a视频一区www| 国产综合福利在线| 97在线观看免费高清| 欧美性猛交xxxx免费看久久久| 国产精品久久在线观看| 日本最新高清不卡中文字幕| 69视频在线播放| 亚洲成人久久久久| 精品亚洲精品福利线在观看| 日韩大胆人体377p| 精品国产成人在线| 国产盗摄xxxx视频xxx69| 国产精品高潮粉嫩av| 欧美性高潮在线| 日韩女在线观看| 国产精品999999| 91精品国产99久久久久久| 欧美老女人性视频| 日韩中文字幕av| 伦伦影院午夜日韩欧美限制| 中文字幕在线日韩| 国产精品久久久久久久av电影| 秋霞av国产精品一区| 国产精品成人av性教育| 91国产高清在线| 亚洲精品福利免费在线观看| 亚洲欧美中文字幕| 久久久久久久网站| 国产欧美一区二区三区四区| 日韩av电影国产| 亚洲图中文字幕| 91精品视频网站| 欧美一区三区三区高中清蜜桃| 在线视频日本亚洲性| 亚洲国产婷婷香蕉久久久久久| 青青久久aⅴ北条麻妃| 成人国产在线激情| 欧美寡妇偷汉性猛交| www.欧美三级电影.com| 日韩精品一二三四区| 日本精品视频网站| 日韩在线精品视频| 欧美巨大黑人极品精男| …久久精品99久久香蕉国产| 精品国产精品三级精品av网址| 在线观看国产精品淫| 亚洲三级 欧美三级| 亚洲欧美国产精品va在线观看| 久久电影一区二区| 一区二区三区天堂av| 国外视频精品毛片| 色狠狠久久aa北条麻妃| 91成人在线视频| 欧美极品少妇xxxxⅹ裸体艺术| 欧美性xxxxxx| 成人黄色免费看| 亚洲社区在线观看| 欧美另类第一页| 一区二区三区精品99久久| 亚洲一区二区福利| 欧美成人国产va精品日本一级| 欧美一级大片视频| 精品欧美激情精品一区| 国产成+人+综合+亚洲欧洲| 欧美大片欧美激情性色a∨久久| 日韩精品在线私人| 日韩精品在线视频观看| 国产精品久久久精品| 成人在线观看视频网站| 4444欧美成人kkkk| 18久久久久久| 91久久精品国产91性色| 97碰碰碰免费色视频| 91福利视频在线观看| 91精品国产综合久久香蕉最新版| 国产日韩欧美影视| 亚洲一级一级97网| 欧美性猛交99久久久久99按摩| 欧美日韩免费看| 在线播放日韩专区| 精品视频一区在线视频| 欧美日韩在线观看视频小说| 午夜精品久久久久久久99黑人| 国产亚洲人成a一在线v站| 亚洲精美色品网站| 国产91精品不卡视频| 久久久久国产视频| 91国偷自产一区二区三区的观看方式| 国产在线精品成人一区二区三区| 亚洲成人精品久久久| 青青青国产精品一区二区| 精品视频一区在线视频| 日本成人免费在线| 亚洲a∨日韩av高清在线观看| 久久69精品久久久久久国产越南| 俺也去精品视频在线观看| 日韩在线观看网站| 亚洲国产精品嫩草影院久久| 欧美亚洲一区在线| 国产午夜精品全部视频在线播放| 欧美电影在线观看| 一本一道久久a久久精品逆3p| 欧美日韩精品中文字幕| 中文字幕免费精品一区| 日韩成人黄色av| 久久青草精品视频免费观看| 亚洲综合av影视| 亚洲va国产va天堂va久久| 日韩在线观看电影| 亚洲精品电影在线观看| 久久久久久久久久婷婷| 91精品国产自产在线观看永久| 狠狠色狠狠色综合日日五| 日韩电影免费观看中文字幕| 91久久精品久久国产性色也91| 欧美老少做受xxxx高潮| 日韩性生活视频| 自拍视频国产精品| 国产精品视频久久久| 亚洲欧美综合精品久久成人| 亚洲男人第一网站| 91欧美日韩一区| 日本高清视频精品| 久久久久免费精品国产| 欧美日韩亚洲国产一区| 欧美大全免费观看电视剧大泉洋| 国产一区二区三区在线播放免费观看| 久久久久久一区二区三区| 日产精品99久久久久久| 久久精品亚洲国产| 亚洲一区二区中文| 91九色单男在线观看| 亚洲专区国产精品| 亚洲欧美中文字幕在线一区| 亚洲肉体裸体xxxx137| 成人免费激情视频| 亚洲色图五月天| 在线观看欧美视频|