PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法
本文實例講述了PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法。分享給大家供大家參考。具體如下:
在PHP要向其它程序發(fā)送數(shù)據(jù),則需要使用到php的socket功能來實例了,下面我們簡單看一個實例,代碼如下:
@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的第二個參數(shù)用以指定讀入的字節(jié)數(shù),你可以通過它來限制從客戶端獲取數(shù)據(jù)的大小.
sock函數(shù)介紹
| 函數(shù)名 | 描述 |
| socket_accept() | 接受一個Socket連接 |
| socket_bind() | 把socket綁定在一個IP地址和端口上 |
| socket_clear_error() | 清除socket的錯誤或者最后的錯誤代碼 |
| socket_close() | 關(guān)閉一個socket資源 |
| socket_connect() | 開始一個socket連接 |
| socket_create_listen() | 在指定端口打開一個socket監(jiān)聽 |
| socket_create_pair() | 產(chǎn)生一對沒有區(qū)別的socket到一個數(shù)組里 |
| socket_create() | 產(chǎn)生一個socket,相當于產(chǎn)生一個socket的數(shù)據(jù)結(jié)構(gòu) |
| socket_get_option() | 獲取socket選項 |
| socket_getpeername() | 獲取遠程類似主機的ip地址 |
| socket_getsockname() | 獲取本地socket的ip地址 |
| socket_iovec_add() | 添加一個新的向量到一個分散/聚合的數(shù)組 |
| socket_iovec_alloc() | 這個函數(shù)創(chuàng)建一個能夠發(fā)送接收讀寫的iovec數(shù)據(jù)結(jié)構(gòu) |
| socket_iovec_delete() | 刪除一個已經(jīng)分配的iovec |
| socket_iovec_fetch() | 返回指定的iovec資源的數(shù)據(jù) |
| socket_iovec_free() | 釋放一個iovec資源 |
| socket_iovec_set() | 設(shè)置iovec的數(shù)據(jù)新值 |
| socket_last_error() | 獲取當前socket的最后錯誤代碼 |
| 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,如果沒有指定則默認當前socket |
| socket_recvmsg() | 從iovec里接受消息 |
| socket_select() | 多路選擇 |
| socket_send() | 這個函數(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選項 |
| socket_shutdown() | 這個函數(shù)允許你關(guān)閉讀、寫、或者指定的socket |
| socket_strerror() | 返回指定錯誤號的詳細錯誤 |
| socket_write() | 寫數(shù)據(jù)到socket緩存 |
| socket_writev() | 寫數(shù)據(jù)到分散/聚合數(shù)組 |
注意:socket_read函數(shù)會一直讀取殼戶端數(shù)據(jù),直到遇見n,t或者字符,PHP腳本把這些字符看做是輸入的結(jié)束符.
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
PHP 魔術(shù)變量和魔術(shù)函數(shù)詳解
這篇文章主要簡單介紹了PHP 魔術(shù)變量和魔術(shù)函數(shù),以及使用示例,方便我們學習理解php魔術(shù)變量和魔術(shù)函數(shù),有需要的小伙伴參考下吧。2015-02-02
php使用date和strtotime函數(shù)輸出指定日期的方法
這篇文章主要介紹了php使用date和strtotime函數(shù)輸出指定日期的方法,實例匯總了生成各種日期格式的方法,非常具有實用價值,需要的朋友可以參考下2014-11-11
PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 Triplet
PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 Triplet,學習php的朋友可以參考下。2011-07-07

