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

首頁 > 編程 > PHP > 正文

如何實現簡單的php socket通信

2020-03-22 18:51:54
字體:
來源:轉載
供稿:網友
socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。html' target='_blank'>應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。socket既不是程序,也不是協議,其只是操作系統提供的通信層的一組抽象API。前面章節介紹了php socket的一些常用重要的函數,在socket通信中就會有使用。

通信需要服務端和客戶端組成:

服務端:使用php初始化socket然后綁定一個端口,對端口進行監聽。調用accept阻塞,等待客戶端連接。

客戶端:客戶端初始化一個socket,然后連接服務器,如果連接成功,這時客戶端與服務器端的連接就建立了??蛻舳税l送數據請求,服務器端接收請求并處理請求,然后把回應數據發送給客戶端,客戶端讀取數據,最后關閉連接,一次交互結束。

客戶端—服務端是可以彼此交互的應用程序??蛻舳撕头斩酥g的交互需要連接。Socket編程負責的就是為應用程序之間建立可進行交互的連接。

Socket連接過程

根據連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟:服務器監聽,客戶端請求,連接確認。

(1)服務器監聽:是服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態。

(2)客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端套接字提出連接請求。

(3)連接確認:是指當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求,它就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,連接就建立好了。而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。

socket原理可以參考下面的流程圖:

6.jpg

下面通過一個服務端--客戶端的代碼實例來簡單實現一下socket通信整個過程

1. 其服務端代碼:

<?phpset_time_limit(0); //限制執行時間  0為不限制$ip = '127.0.0.1';$port = 8001;//端口/**socket通信整個過程 socket_create  //創建一個套接字socket_bind  //給套接字綁定 ip 和端口socket_listen //監聽套接字上的連接socket_accept //接受一個socket連接socket_read //接收客戶端 發送的數據socket_write //將數據寫到 socket 緩存 向客戶端發送socket_close   //關閉套接字資源*/ if(($sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0) {    echo "socket_create() 失敗的原因是:".socket_strerror($sock)."/n";}if(($ret = socket_bind($sock,$ip,$port)) < 0) {    echo "socket_bind() 失敗的原因是:".socket_strerror($ret)."/n";}if(($ret = socket_listen($sock,4)) < 0) {    echo "socket_listen() 失敗的原因是:".socket_strerror($ret)."/n";}$count = 0;do {    if (($msgsock = socket_accept($sock)) < 0) {        echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "/n";        break;    } else {                //發到客戶端        $msg ="測試成功!/n";        socket_write($msgsock, $msg, strlen($msg));                echo "測試成功了啊/n";        $buf = socket_read($msgsock,8192);                        $talkback = "收到的信息:$buf/n";        echo $talkback;                if(++$count >= 5){            break;        };                }    //echo $buf;    socket_close($msgsock);} while (true);socket_close($sock);?>

運行php 文件,運行后 ,應該看不見結果 , 可以使用 netstat -ntlp 查看 8001 端口是否被占用。參見下圖。

7.png

2. 其客戶端代碼:

<?phperror_reporting(E_ALL);set_time_limit(0);echo "socket通信客戶端/n";$port = 8001;//端口$ip = "127.0.0.1";//ip/**socket連接整個過程 socket_create //建立一個socket 連接 socket_connect // 開始一個socket連接  連接服務端 socket_write //將數據寫入緩存   向服務端發送 socket_read// 讀取服務端的結果 socket_close // 關閉套接字資源  */$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);if ($socket < 0) {    echo "socket_create() failed: reason: " . socket_strerror($socket) . "/n";}else {    echo "OK./n";}echo "試圖連接 '$ip' 端口 '$port'.../n";$result = socket_connect($socket, $ip, $port);if ($result < 0) {    echo "socket_connect() failed./nReason: ($result) " . socket_strerror($result) . "/n";}else {    echo "連接OK/n";}$in = "Ho/r/nfirst blood/r/n";$out = '';if(!socket_write($socket, $in, strlen($in))) {    echo "socket_write() failed: reason: " . socket_strerror($socket) . "/n";}else {    echo "發送到服務器信息成功!/n";    echo "發送的內容為:<font color='red'>$in</font> <br>";}while($out = socket_read($socket, 8192)) {    echo "接收服務器回傳信息成功!/n";    echo "接受的內容為:",$out;}echo "關閉SOCKET.../n";socket_close($socket);echo "關閉OK/n";?>

在看看服務端的窗口結果:

8.png

說明: PHP 語言的特性決定了php 在這方面它只適合做客戶端,不適合做服務端。

【相關教程推薦】

1. 《VeVb.com獨孤九賤(4)-php視頻教程》

2. php編程從入門到精通全套教程

以上就是如何實現簡單的php socket通信的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品视频一| 亚洲视频电影图片偷拍一区| 91香蕉嫩草神马影院在线观看| 97超级碰碰碰久久久| 亚洲一级片在线看| 成人乱色短篇合集| 国产香蕉精品视频一区二区三区| 欧美一区二区色| 大荫蒂欧美视频另类xxxx| 国产一区二区精品丝袜| 91豆花精品一区| 亚洲精品之草原avav久久| 欧美老少做受xxxx高潮| 欧美主播福利视频| 国产一区二区动漫| 国产69久久精品成人| 亚洲精品福利免费在线观看| 国产亚洲视频在线观看| 亚洲欧美中文字幕| 伊人男人综合视频网| 精品一区电影国产| 日本成人精品在线| 日韩极品精品视频免费观看| 欧美刺激性大交免费视频| 亚洲黄页网在线观看| 亚洲一级片在线看| 国产91对白在线播放| 日韩免费在线播放| 亚洲成人久久久久| 亚洲国产欧美一区| 亚洲自拍小视频| 91精品国产综合久久香蕉的用户体验| 亚洲成人aaa| 在线电影欧美日韩一区二区私密| 亚洲一区亚洲二区| 亚洲色图av在线| 性亚洲最疯狂xxxx高清| 欧美电影在线观看高清| 国产精品444| 九九热精品在线| 日韩高清av一区二区三区| 亚洲欧美日韩视频一区| 国内伊人久久久久久网站视频| 91国语精品自产拍在线观看性色| 8x海外华人永久免费日韩内陆视频| 国产精品成人av性教育| 亚洲一区二区三区四区视频| 欧美一区二区三区四区在线| 国产精品国产三级国产aⅴ浪潮| 亚洲成人网av| 欧美专区在线播放| 国产精品香蕉在线观看| 97视频在线观看免费高清完整版在线观看| 欧美日韩精品国产| 97热精品视频官网| 中文字幕精品影院| 成人黄色激情网| 亚洲人成绝费网站色www| 亚洲欧美国产高清va在线播| 国内偷自视频区视频综合| 欧美激情国产精品| 欧美午夜电影在线| 最近2019中文字幕在线高清| 国产亚洲福利一区| 国产精品扒开腿做爽爽爽男男| 久久这里有精品视频| 91久久精品国产91久久| 欧美巨大黑人极品精男| 成人免费高清完整版在线观看| 日韩av片永久免费网站| 欧美电影免费观看电视剧大全| 国产精品久久久久久久一区探花| 91国产精品视频在线| 欧美老肥婆性猛交视频| 91中文字幕在线观看| 亚洲第一福利网站| 亚洲人高潮女人毛茸茸| 2019日本中文字幕| 亚洲精品美女在线观看播放| 日韩激情第一页| 亚洲欧美日本精品| 亚洲色图偷窥自拍| 国产欧美日韩免费| 日韩激情视频在线| 黑人巨大精品欧美一区二区| 国产精品日韩欧美综合| 亚洲片国产一区一级在线观看| 亚洲国产精久久久久久| 国产精品久久久久7777婷婷| 久久亚洲精品视频| 国产精品18久久久久久首页狼| 91久久中文字幕| 午夜精品久久久久久久久久久久| 国产欧美精品一区二区| 久久男人资源视频| 韩国精品美女www爽爽爽视频| 亚洲一区二区精品| 一区二区在线视频播放| 九九热r在线视频精品| 日韩免费观看高清| 国产精品27p| 久热精品在线视频| 欧美性xxxxxx| 久久久91精品国产一区不卡| 亚洲在线第一页| 黄色成人av在线| 日韩欧美在线一区| 精品国产一区二区三区四区在线观看| 8090成年在线看片午夜| 日韩av在线免费观看| 欧美与黑人午夜性猛交久久久| 亚洲欧美国产精品va在线观看| 日韩视频免费中文字幕| 久久综合久久88| 日韩电影大全免费观看2023年上| 一区二区三区国产视频| 日韩美女视频中文字幕| 91国语精品自产拍在线观看性色| 亚洲第一综合天堂另类专| 亚州成人av在线| 欧美日韩美女在线观看| 黄色91在线观看| 欧美人与性动交| 亚洲国产精品人久久电影| 日本欧美国产在线| 国产区精品视频| 日韩欧中文字幕| 成人久久久久爱| 欧美日韩久久久久| 欧美极品在线播放| 国内成人精品一区| 77777少妇光屁股久久一区| 日韩电影中文字幕在线观看| 久久手机精品视频| 91国产美女在线观看| 国产成+人+综合+亚洲欧美丁香花| 一本大道久久加勒比香蕉| 欧美视频专区一二在线观看| 自拍亚洲一区欧美另类| 国产日韩欧美另类| 法国裸体一区二区| 久久久www成人免费精品张筱雨| 欧美极品少妇xxxxx| 欧美激情第99页| 亚洲开心激情网| 久久成年人免费电影| 欧美激情日韩图片| 国产中文字幕91| 久久天天躁夜夜躁狠狠躁2022| 国产精品美女午夜av| 91丝袜美腿美女视频网站| www.日本久久久久com.| 精品国产一区二区三区在线观看| 中文字幕一区二区精品| 少妇高潮久久77777| 亚洲国产精品美女| 国产精品99久久久久久白浆小说| 国产99视频在线观看| 国产亚洲精品成人av久久ww| 日韩欧美国产激情| 色综合久综合久久综合久鬼88| 成人免费在线网址| 日韩中文字幕视频在线观看| 欧美性猛交xxxx偷拍洗澡|