PHP向socket服務器收發(fā)數據的方法
本文實例講述了PHP向socket服務器收發(fā)數據的方法。分享給大家供大家參考。具體如下:
在PHP要向其它程序發(fā)送數據,則需要使用到php的socket功能來實例了,下面我們簡單看一個實例,代碼如下:
@host(string) socket服務器IP
@post(int) 端口
@str(string) 要發(fā)送的數據
@back 1|0 socket端是否有數據返回
返回true|false|服務端數據
*/
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的第二個參數用以指定讀入的字節(jié)數,你可以通過它來限制從客戶端獲取數據的大小.
sock函數介紹
函數名 | 描述 |
socket_accept() | 接受一個Socket連接 |
socket_bind() | 把socket綁定在一個IP地址和端口上 |
socket_clear_error() | 清除socket的錯誤或者最后的錯誤代碼 |
socket_close() | 關閉一個socket資源 |
socket_connect() | 開始一個socket連接 |
socket_create_listen() | 在指定端口打開一個socket監(jiān)聽 |
socket_create_pair() | 產生一對沒有區(qū)別的socket到一個數組里 |
socket_create() | 產生一個socket,相當于產生一個socket的數據結構 |
socket_get_option() | 獲取socket選項 |
socket_getpeername() | 獲取遠程類似主機的ip地址 |
socket_getsockname() | 獲取本地socket的ip地址 |
socket_iovec_add() | 添加一個新的向量到一個分散/聚合的數組 |
socket_iovec_alloc() | 這個函數創(chuàng)建一個能夠發(fā)送接收讀寫的iovec數據結構 |
socket_iovec_delete() | 刪除一個已經分配的iovec |
socket_iovec_fetch() | 返回指定的iovec資源的數據 |
socket_iovec_free() | 釋放一個iovec資源 |
socket_iovec_set() | 設置iovec的數據新值 |
socket_last_error() | 獲取當前socket的最后錯誤代碼 |
socket_listen() | 監(jiān)聽由指定socket的所有連接 |
socket_read() | 讀取指定長度的數據 |
socket_readv() | 讀取從分散/聚合數組過來的數據 |
socket_recv() | 從socket里結束數據到緩存 |
socket_recvfrom() | 接受數據從指定的socket,如果沒有指定則默認當前socket |
socket_recvmsg() | 從iovec里接受消息 |
socket_select() | 多路選擇 |
socket_send() | 這個函數發(fā)送數據到已連接的socket |
socket_sendmsg() | 發(fā)送消息到socket |
socket_sendto() | 發(fā)送消息到指定地址的socket |
socket_set_block() | 在socket里設置為塊模式 |
socket_set_nonblock() | socket里設置為非塊模式 |
socket_set_option() | 設置socket選項 |
socket_shutdown() | 這個函數允許你關閉讀、寫、或者指定的socket |
socket_strerror() | 返回指定錯誤號的詳細錯誤 |
socket_write() | 寫數據到socket緩存 |
socket_writev() | 寫數據到分散/聚合數組 |
注意:socket_read函數會一直讀取殼戶端數據,直到遇見n,t或者字符,PHP腳本把這些字符看做是輸入的結束符.
希望本文所述對大家的php程序設計有所幫助。
相關文章
基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題
下面小編就為大家分享一篇基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03