您好,登錄后才能下訂單哦!
利用PHP怎么對socket服務器接發數據?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在PHP要向其它程序發送數據,則需要使用到php的socket功能來實例了,下面我們簡單看一個實例,代碼如下:
復制代碼 代碼如下:
/*socket收發數據
@host(string) socket服務器IP
@post(int) 端口
@str(string) 要發送的數據
@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的第二個參數用以指定讀入的字節數,你可以通過它來限制從客戶端獲取數據的大小.
sock函數介紹
函數名 | 描述 |
socket_accept() | 接受一個Socket連接 |
socket_bind() | 把socket綁定在一個IP地址和端口上 |
socket_clear_error() | 清除socket的錯誤或者最后的錯誤代碼 |
socket_close() | 關閉一個socket資源 |
socket_connect() | 開始一個socket連接 |
socket_create_listen() | 在指定端口打開一個socket監聽 |
socket_create_pair() | 產生一對沒有區別的socket到一個數組里 |
socket_create() | 產生一個socket,相當于產生一個socket的數據結構 |
socket_get_option() | 獲取socket選項 |
socket_getpeername() | 獲取遠程類似主機的ip地址 |
socket_getsockname() | 獲取本地socket的ip地址 |
socket_iovec_add() | 添加一個新的向量到一個分散/聚合的數組 |
socket_iovec_alloc() | 這個函數創建一個能夠發送接收讀寫的iovec數據結構 |
socket_iovec_delete() | 刪除一個已經分配的iovec |
socket_iovec_fetch() | 返回指定的iovec資源的數據 |
socket_iovec_free() | 釋放一個iovec資源 |
socket_iovec_set() | 設置iovec的數據新值 |
socket_last_error() | 獲取當前socket的最后錯誤代碼 |
socket_listen() | 監聽由指定socket的所有連接 |
socket_read() | 讀取指定長度的數據 |
socket_readv() | 讀取從分散/聚合數組過來的數據 |
socket_recv() | 從socket里結束數據到緩存 |
socket_recvfrom() | 接受數據從指定的socket,如果沒有指定則默認當前socket |
socket_recvmsg() | 從iovec里接受消息 |
socket_select() | 多路選擇 |
socket_send() | 這個函數發送數據到已連接的socket |
socket_sendmsg() | 發送消息到socket |
socket_sendto() | 發送消息到指定地址的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腳本把這些字符看做是輸入的結束符.
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。