首頁  >  文章  >  後端開發  >  php Socket 程式設計詳細介紹

php Socket 程式設計詳細介紹

怪我咯
怪我咯原創
2017-07-12 10:58:502633瀏覽

PHP 使用Berkley的socket函式庫來建立它的連結。你可以知道socket只不過是一個資料結構。你使用這個socket資料結構去開始一個客戶端和伺服器之間的會話。這個伺服器是一直在監聽準備產生一個新的會話。當一個客戶端連接伺服器,它就打開伺服器正在進行監聽的一個連接埠進行會話。這時,伺服器端接受客戶端的連線請求,那麼就進行一次循環。現在這個客戶端就能夠傳送訊息到伺服器,伺服器也能傳送訊息給客戶端。
產生一個Socket,你需要三個變數:一個協定、一個socket類型和一個公共協定類型。產生一個socket有三種協議供選擇,繼續看下面的內容來獲取詳細的協議內容。
定義一個公共的協定類型是進行連接一個必不可少的元素

下面讓我們以一個簡單的例子開始---一個接收輸入字元字串,處理並傳回這個字串到客戶端的TCP服務.程式碼如下:

<?php
// 设置一些基本的变量 
$host = "192.168.1.99"; 
$port = 1234; 
// 设置超时时间 
set_time_limit(0); 
// 创建一个Socket 
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create 
socket\n"); 
//绑定Socket到端口 
$result = socket_bind($socket, $host, $port) or die("Could not bind to 
socket\n"); 
// 开始监听链接 
$result = socket_listen($socket, 3) or die("Could not set up socket 
listener\n"); 
// accept incoming connections 
// 另一个Socket来处理通信 
$spawn = socket_accept($socket) or die("Could not accept incoming 
connection\n"); 
// 获得客户端的输入 
$input = socket_read($spawn, 1024) or die("Could not read input\n"); 
// 清空输入字符串 
$input = trim($input); 
//处理客户端输入并返回结果 
$output = strrev($input) . "\n"; 
socket_write($spawn, $output, strlen ($output)) or die("Could not write 
output\n"); 
// 关闭sockets 
socket_close($spawn); 
socket_close($socket); 
?>

以上是php Socket 程式設計詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn