PHP技術(shù)進(jìn)階 PHP SOCKET 技術(shù)研究_PHP教程
今天試著寫(xiě)一個(gè) PHP 與 C 語(yǔ)言通過(guò)socket通訊的程序,看過(guò)PHP手冊(cè),發(fā)現(xiàn)有好幾種方式可以建立socket 客戶端.
1、通過(guò) fsockopen() 建立socket連接,然后用 用fputs() 發(fā)送消息,用 fgets() 接收消息。
2、通過(guò) socket_create() 建立 socket 連接,然后用 socket_send() or socket_write() 發(fā)送消息,用 socket_recv() or socket_read() 發(fā)送消息。
很奇怪,我在手冊(cè)上看到了這樣一段話"本擴(kuò)展模塊是實(shí)驗(yàn)性的。該模塊的行為,包括其函數(shù)的名稱以及其它任何關(guān)于此模塊的文檔可能會(huì)在沒(méi)有通知的情況下隨 PHP 以后的發(fā)布而改變。我們提醒您在使用本擴(kuò)展模塊的同時(shí)自擔(dān)風(fēng)險(xiǎn)。" 看來(lái) php4.0 socket通訊還不是完全穩(wěn)定。
今天我寫(xiě)的客戶端要與服務(wù)端做兩次通訊,我用上面這個(gè)方法都寫(xiě)了一個(gè)客戶端程序,發(fā)現(xiàn)當(dāng)僅僅就一次通訊的時(shí)候,也就是PHP客戶端發(fā)送一次消息,然后接收返回消息,就關(guān)閉連接。這兩種方法都能正確快速的實(shí)現(xiàn)功能,但當(dāng)做兩次通訊時(shí),卻有明顯的差別,第一種方法第一次通訊特別快就結(jié)束了,這個(gè)我可以通過(guò)服務(wù)端的輸出看出來(lái),但是第二次通訊要等上好幾分鐘才能結(jié)束,我試了好幾次都這樣,我不太清楚我的程序哪里出錯(cuò)了,還是這個(gè)方式連接就是有問(wèn)題,但是第二種方法做這兩次通訊卻很快,正確!完成的非常的。
最后我根據(jù) 第二種情況寫(xiě)了一個(gè) class
////////////////////////////// File Description ////////////////////////////////////////// } |
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP和JS實(shí)現(xiàn)普通HTTP上安全地傳輸密碼
- 用PHP提取中英文詞語(yǔ)以及數(shù)字的首字母的方法介紹
- PHP實(shí)例:從數(shù)組里篩選出重復(fù)的數(shù)據(jù)
- PHP學(xué)習(xí)筆記之面向?qū)ο笤O(shè)計(jì)
- PHP4之COOKIE支持詳解
- PHP連接遠(yuǎn)程MYSQL和MYSQL5.1中文亂碼處理方法
- 一個(gè)簡(jiǎn)單的PHP郵件發(fā)送類
- 深入探討:Nginx 502 Bad Gateway錯(cuò)誤的解決方法
- PHP遞歸調(diào)用的小技巧講解
- 關(guān)于PHP編程中“數(shù)組”的基礎(chǔ)知識(shí)
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-PHP技術(shù)進(jìn)階 PHP SOCKET 技術(shù)研究。