⑴ php中關於socket的系列函數總結
本文列舉了所有關於PHP語言中使用socket相關服務的一些函數。注意使用如下函數之前,你需要確保你的socket已打開,如果你沒有打開,請編輯你的php.ini文件,去掉下面這行前面的注釋(分號):
代碼如下:
extension=php_sockets.dll
如果你無法去掉注釋,那麼請使用下面的代碼來載入擴展庫:
代碼如下:
if(!extension_loaded('sockets')){
if(strtoupper(substr(PHP_OS,3))=="WIN"){
dl('php_sockets.dll');
}else{
dl('sockets.so');
}
}
如果你不知道你的socket是否打開,那麼你可以使用phpinfo()函數來確定socket是否打開。你通過查看phpinfo信息了解socket是否打開。
php
socket
相關函數如下:
代碼如下:
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()
寫數據到分散/聚合數組
⑵ php怎麼打開socket擴展
下個相同版本的php源碼,進行編譯安裝,再按照上面步驟搞,生成的so。到rpm裝的那個,修改php.ini進行擴展就行了,或者到網上找相同版本,相同系統 的編譯好的so文件。
在linux下給PHP安裝socket擴展,參考方法如下:
#cd /home/php/ext/sockets
#/server/php/bin/phpize
#./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
#make
#make install
再修改/usr/local/php/etc/php.ini文件
#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" (php5.4版本以上不用加擴展路徑)
extension=sockets.so
重啟apache或者nginx等進程,完成。
⑶ php怎麼打開socket擴展
要使用擴展必須php已經安裝了這個擴展,在windows下,下載php_socket.dll放到apache文件目錄下的ext目錄下,修改php.ini的文件,找到extension=php_socket.dll這一行,把前面的;去掉,若沒找到則添加,再重啟。在linux下需要編譯安裝,再打開配置文件添加extension = php_socket.so
⑷ PHP如何開啟socket
如果你是windows系統,請進入安裝目錄,找到php.ini這個文件,找到下面一行。
找到extension=php_sockets.dll一句,將前面的;去掉
;是注釋的意思。
如果你的Linux系統,重新編譯,./configure --help,自己看去,相信你懂的,你也必須學著看這個了。想看看自己的php是否有這個拓展,使用php -m命令來看,如果有,就不用重新編譯了。
--enable-sockets