PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法
本文實(shí)例講述了PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法。分享給大家供大家參考。具體如下:
在PHP要向其它程序發(fā)送數(shù)據(jù),則需要使用到php的socket功能來實(shí)例了,下面我們簡單看一個(gè)實(shí)例,代碼如下:
@host(string) socket服務(wù)器IP
@post(int) 端口
@str(string) 要發(fā)送的數(shù)據(jù)
@back 1|0 socket端是否有數(shù)據(jù)返回
返回true|false|服務(wù)端數(shù)據(jù)
*/
function sendSocketMsg($host,$port,$str,$back=0){
$socket = socket_create(AF_INET,SOCK_STREAM,0);
if ($socket < 0) return false;
$result = @socket_connect($socket,$host,$port);
if ($result == false)return false;
socket_write($socket,$str,strlen($str));
if($back!=0){
$input = socket_read($socket,1024);
socket_close ($socket);
return $input;
}else{
socket_close ($socket);
return true;
}
}
socker_read的第二個(gè)參數(shù)用以指定讀入的字節(jié)數(shù),你可以通過它來限制從客戶端獲取數(shù)據(jù)的大小.
sock函數(shù)介紹
| 函數(shù)名 | 描述 |
| socket_accept() | 接受一個(gè)Socket連接 |
| socket_bind() | 把socket綁定在一個(gè)IP地址和端口上 |
| socket_clear_error() | 清除socket的錯(cuò)誤或者最后的錯(cuò)誤代碼 |
| socket_close() | 關(guān)閉一個(gè)socket資源 |
| socket_connect() | 開始一個(gè)socket連接 |
| socket_create_listen() | 在指定端口打開一個(gè)socket監(jiān)聽 |
| socket_create_pair() | 產(chǎn)生一對沒有區(qū)別的socket到一個(gè)數(shù)組里 |
| socket_create() | 產(chǎn)生一個(gè)socket,相當(dāng)于產(chǎn)生一個(gè)socket的數(shù)據(jù)結(jié)構(gòu) |
| socket_get_option() | 獲取socket選項(xiàng) |
| socket_getpeername() | 獲取遠(yuǎn)程類似主機(jī)的ip地址 |
| socket_getsockname() | 獲取本地socket的ip地址 |
| socket_iovec_add() | 添加一個(gè)新的向量到一個(gè)分散/聚合的數(shù)組 |
| socket_iovec_alloc() | 這個(gè)函數(shù)創(chuàng)建一個(gè)能夠發(fā)送接收讀寫的iovec數(shù)據(jù)結(jié)構(gòu) |
| socket_iovec_delete() | 刪除一個(gè)已經(jīng)分配的iovec |
| socket_iovec_fetch() | 返回指定的iovec資源的數(shù)據(jù) |
| socket_iovec_free() | 釋放一個(gè)iovec資源 |
| socket_iovec_set() | 設(shè)置iovec的數(shù)據(jù)新值 |
| socket_last_error() | 獲取當(dāng)前socket的最后錯(cuò)誤代碼 |
| socket_listen() | 監(jiān)聽由指定socket的所有連接 |
| socket_read() | 讀取指定長度的數(shù)據(jù) |
| socket_readv() | 讀取從分散/聚合數(shù)組過來的數(shù)據(jù) |
| socket_recv() | 從socket里結(jié)束數(shù)據(jù)到緩存 |
| socket_recvfrom() | 接受數(shù)據(jù)從指定的socket,如果沒有指定則默認(rèn)當(dāng)前socket |
| socket_recvmsg() | 從iovec里接受消息 |
| socket_select() | 多路選擇 |
| socket_send() | 這個(gè)函數(shù)發(fā)送數(shù)據(jù)到已連接的socket |
| socket_sendmsg() | 發(fā)送消息到socket |
| socket_sendto() | 發(fā)送消息到指定地址的socket |
| socket_set_block() | 在socket里設(shè)置為塊模式 |
| socket_set_nonblock() | socket里設(shè)置為非塊模式 |
| socket_set_option() | 設(shè)置socket選項(xiàng) |
| socket_shutdown() | 這個(gè)函數(shù)允許你關(guān)閉讀、寫、或者指定的socket |
| socket_strerror() | 返回指定錯(cuò)誤號的詳細(xì)錯(cuò)誤 |
| socket_write() | 寫數(shù)據(jù)到socket緩存 |
| socket_writev() | 寫數(shù)據(jù)到分散/聚合數(shù)組 |
注意:socket_read函數(shù)會(huì)一直讀取殼戶端數(shù)據(jù),直到遇見n,t或者字符,PHP腳本把這些字符看做是輸入的結(jié)束符.
希望本文所述對大家的php程序設(shè)計(jì)有所幫助。
- PHP程序員簡單的開展服務(wù)治理架構(gòu)操作詳解(一)
- php獲取服務(wù)器端mac和客戶端mac的地址支持WIN/LINUX
- PHP 服務(wù)器配置(使用Apache及IIS兩種方法)
- PHP 顯示客戶端IP與服務(wù)器IP的代碼
- PHP實(shí)現(xiàn)Socket服務(wù)器的代碼
- php獲取服務(wù)器信息的實(shí)現(xiàn)代碼
- php socket客戶端及服務(wù)器端應(yīng)用實(shí)例
- 利用php獲取服務(wù)器時(shí)間的實(shí)現(xiàn)代碼
- PHP實(shí)現(xiàn)服務(wù)器狀態(tài)監(jiān)控的方法
- PHP程序員簡單的開展服務(wù)治理架構(gòu)操作詳解(二)
相關(guān)文章
PHP 魔術(shù)變量和魔術(shù)函數(shù)詳解
這篇文章主要簡單介紹了PHP 魔術(shù)變量和魔術(shù)函數(shù),以及使用示例,方便我們學(xué)習(xí)理解php魔術(shù)變量和魔術(shù)函數(shù),有需要的小伙伴參考下吧。2015-02-02
PHP獲取文件擴(kuò)展名的方法實(shí)例總結(jié)
這篇文章主要介紹了PHP獲取文件擴(kuò)展名的方法,結(jié)合實(shí)例形式總結(jié)了6種常用的文件擴(kuò)展名獲取方法,代碼備有較為詳細(xì)的注釋便于理解,需要的朋友可以參考下2017-06-06
php使用date和strtotime函數(shù)輸出指定日期的方法
這篇文章主要介紹了php使用date和strtotime函數(shù)輸出指定日期的方法,實(shí)例匯總了生成各種日期格式的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
PHP+Ajax實(shí)現(xiàn)的博客文章添加類別功能示例
這篇文章主要介紹了PHP+Ajax實(shí)現(xiàn)的博客文章添加類別功能,結(jié)合實(shí)例形式分析了php+ajax實(shí)現(xiàn)的數(shù)據(jù)交互、數(shù)據(jù)庫連接、查詢等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 Triplet
PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 Triplet,學(xué)習(xí)php的朋友可以參考下。2011-07-07

