古詩詞大全網 - 經典古詩 - 請教php大神,php如何實現點擊頁面上的壹個按鈕發送socket的tcp數據

請教php大神,php如何實現點擊頁面上的壹個按鈕發送socket的tcp數據

1.參考資料

socket_create()函數需要三個參數:壹個協議、壹個socket類型、壹個公***協議。socket_create()函數運行成功返回壹個

包含socket的資源類型,如果沒有成功則返回false。

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() 寫數據到分散/聚合數組

2.代碼:

<?php

$sendStr?=?'30?32?30?34?03?30?33';?//?16進制數據

$sendStrArray?=?str_split(str_replace('?',?'',?$sendStr),?2);?//?將16進制數據轉換成兩個壹組的數組

$socket?=?socket_create(AF_INET,?SOCK_STREAM,?getprotobyname("tcp"));?//?創建Socket

if?(socket_connect($socket,?"192.168.1.100",?8080))?{?//連接

for?($j?=?0;?$j?<?count($sendStrArray);?$j++)?{

socket_write($socket,?chr(hexdec($sendStrArray[$j])));?//?逐組數據發送

}

$receiveStr?=?"";

$receiveStr?=?socket_read($socket,?1024,?PHP_BINARY_READ);?//?采用2進制方式接收數據

$receiveStrHex?=?bin2hex($receiveStr);?//?將2進制數據轉換成16進制

echo?"client:"?.?$receiveStrHex;

}

socket_close($socket);?//?關閉Socket

>