當前位置: 首頁> 函數類別大全> stream_socket_accept

stream_socket_accept

接受由stream_socket_server() 創建的套接字連接
名稱:stream_socket_accept
分類:溪流
所屬語言:php
一句話介紹:接受一個通過stream_socket_server()函數創建的socket連接,並返回一個新的socket連接用於與客戶端通信

函數名稱:stream_socket_accept()

函數適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7

函數描述:stream_socket_accept()函數接受一個通過stream_socket_server()函數創建的socket連接,並返回一個新的socket連接用於與客戶端通信。

語法:resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] )

參數:

  • $server_socket:必需。通過stream_socket_server()函數創建的socket資源。
  • $timeout:可選。指定等待客戶端連接的超時時間,單位為秒,默認值為ini_get("default_socket_timeout"),即php.ini中默認的超時時間。
  • $peername:可選。用於存儲客戶端的IP地址和端口號的字符串變量。

返回值:如果成功接受了客戶端連接,則返回一個新的socket資源,用於與客戶端通信。如果出錯,則返回false。

示例: <?php // 創建socket服務器$server = stream_socket_server('tcp://127.0.0.1:8080', $errno, $errstr);

if (!$server) { echo "無法創建socket服務器:$errstr ($errno)"; } else { echo "等待客戶端連接...\n";

 // 接受客户端连接$client = stream_socket_accept($server); if (!$client) { echo "无法接受客户端连接"; } else { // 与客户端通信$message = "欢迎连接到服务器"; fwrite($client, $message); // 读取客户端发送的数据$data = fread($client, 1024); echo "接收到客户端数据:$data"; // 关闭客户端连接fclose($client); } // 关闭服务器fclose($server);

} ?> 以上示例中,首先使用stream_socket_server()函數創建了一個socket服務器,並綁定到本地的8080端口。然後使用stream_socket_accept()函數等待客戶端連接,並返回一個新的socket資源用於與客戶端通信。在與客戶端通信過程中,使用fwrite()函數向客戶端發送歡迎消息,並使用fread()函數讀取客戶端發送的數據。最後,使用fclose()函數關閉客戶端連接和服務器連接。

同類函數
熱門文章