国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php如何實現基于事件驅動的網絡編程

Caizhenhao / 1955人閱讀

摘要:如何實現基于事件驅動的網絡編程場景當客戶端發送數據到服務端,服務端返回相同信息。保持連接說明接下來的所有代碼僅用于簡單的小生產環境需要考慮代碼的嚴謹性。但是使用進程的方式不好,很不好。如果萬個連接,豈不是要萬個進程例子四基于的實現很完美

php 如何實現基于事件驅動的網絡編程 場景

當客戶端發送數據到服務端,服務端返回相同信息。

保持連接

說明
接下來的所有代碼僅用于簡單的小demo
生產環境需要考慮代碼的嚴謹性。

例子一

簡單的接受數據并返回

$ telnet 0.0.0.0 8000
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is "^]".
hello //客戶端輸入
hello //這個是服務端回顯的

Connection closed by foreign host.

上面的例子中,服務端在接收到客戶端數據后會返回相同信息,然后連接會被關閉。無法保持連接。?。

例子二
$socket = stream_socket_server("tcp://0.0.0.0:8000");
while($conn = stream_socket_accept($socket)){
    while($info = fread($conn,1024)){
        fwrite($conn,$info);
    }
}

上面的例子
簡單的接受數據并返回
保持運行
缺點是同時只能處理一個連接!!!!!?

例子三
$socket = stream_socket_server("tcp://0.0.0.0:8000");
while($conn = stream_socket_accept($socket)){
    if(pcntl_fork()){
        while($info = fread($conn,1024)){
            fwrite($conn,$info);
        }
    }
}

這里實際上fork了n個子進程去處理n個請求。
但是使用fork進程的方式不好,很不好。
如果10萬個連接,豈不是要10萬個進程???oh,no!!

例子四

基于libevent的實現,很完美!!!?

0){
            fwrite($conn,$info);
        }
    });
    event_base_set($event,$base);
    event_add($event);
    $events[] = $event;
});
event_base_set($event,$base);
event_add($event);
event_base_loop($base);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30415.html

相關文章

  • [gist]為什么事件驅動服務器這么火

    摘要:兩個事件驅動模型服務器平均每秒處理的請求數為服務器的一倍,而內存降低了一半。事件驅動模型的出現,是為了解決傳統服務器與網絡工作負載的需求的不匹配,實現高度可伸縮服務器,并降低內存開銷。 from http://oyanglul.us 本文基本上這為兩篇文章的翻譯和整合 -...

    fsmStudy 評論0 收藏0
  • Laravel最佳實踐--事件驅動編程

    摘要:事件驅動編程是圖形用戶界面和其他應用程序例如應用程序中使用的主要范例,用于執行某些操作來響應用戶輸入。我們來看一下事件驅動編程帶來的收益。現在讓我們看看采用事件驅動編程方法如何實現上述相同的功能。 在這篇文章中我們將了解到什么是事件驅動編程以及在Laravel中如何開始構建一個事件驅動應用,同時我們還將看到如何通過事件驅動編程來對應用程序的邏輯進行解耦。 在開始之前,先說明一下這篇文章...

    Drummor 評論0 收藏0
  • polarphp:一個新 PHP 語言運行時環境

    摘要:項目介紹是一個全新的語言的運行時環境,基于目前最新的進行打造,支持最新的語言規范,同時提供了自己的運行時標準庫。同樣也在的基礎上進行打造,實現了一個除開發之外的一個全新的運行環境。發布核心虛擬機的鏡像。整合運行時框架。 showImg(https://segmentfault.com/img/bVbnQXK); polarphp 項目介紹 polarphp是一個全新的PHP語言的運行時...

    宋華 評論0 收藏0
  • 什么是Node.js

    Node.js從2009年誕生至今,已經發展了兩年有余,其成長的速度有目共睹。從在github的訪問量超過Rails,到去年底Node.jsS創始人Ryan Dalh加盟Joyent獲得企業資助,再到今年發布Windows移植版本,Node.js的前景獲得了技術社區的肯定。InfoQ一直在關注Node.js的發展,在今年的兩次Qcon大會(北京站和杭州站)都有專門的講座。為了更好地促進Node.j...

    CrazyCodes 評論0 收藏0
  • MongoDB 資源、庫、工具、應用程序精選列表中文版

    摘要:推薦閱讀資源庫工具應用程序精選列表中文版有哪些鮮為人知,但是很有意思的網站一份攻城獅筆記每天搜集上優秀的項目一些有趣的民間故事超好用的谷歌瀏覽器油猴插件合集目錄資源文檔文章圖書會談教程更多庫工具管理數據部署桌面發展監控應用資源文檔介紹文檔教 推薦閱讀 MongoDB 資源、庫、工具、應用程序精選列表中文版 有哪些鮮為人知,但是很有意思的網站? 一份攻城獅筆記 每天搜集 Github ...

    e10101 評論0 收藏0

發表評論

0條評論

Caizhenhao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<