Swoole學習(二)Swoole之TCP伺服器的建立

OldBoy~發表於2018-01-12

環境:Centos6.4,PHP環境:PHP7

<?php
//建立TCP伺服器
/**
 * $host 是swoole需要監聽的ip,如果要監聽本地,不對外服務,那麼就是127.0.0.1;如果我要監聽外網,比如我本地是192.168.9.155,我可以監聽這個IP,如果本機分配的192.168.9.155的IP,外網在訪問IP的時候,就可以相應對應的TCP服務。當然也可以同時監聽多個IP
 */
/**
 * $port埠號。如果選擇1024以下的埠號,需要root許可權,如果swoole和php沒有root許可權,那就行不通。這裡是9501埠
 */
//其實後面還有兩個引數,一個是mode,一個是socke
//$mode預設是 SWOOLE_PROCESS 多程式方式
//$sock預設是SWOOLE_SOCK_TCP 預設TCP服務
//所以後面的兩個引數可以不填寫

$host = '0.0.0.0';
$port = 9501;
$server = new swoole_server($host, $port); //r($host, $port, $mode, $sock)

//--使用
/**
 * $server->on(string $event, mixed $callback);
 * $event包括三種情況connect:當建立連線的時候,receive :當接收到資料的時候,close:當關閉連線的時候
 */
//監聽連線進入事件
$server->on('connect', function($server, $fd){   //$server是剛剛建立的$server控制程式碼,$fd是客戶端的資訊
    echo '建立連線';
    // var_dump($server); 
    // var_dump($fd);
});
//監聽資料傳送事件
$server->on('receive', function($server, $fd, $from_id, $data){ //$server是$server控制程式碼,$fd是客戶端資訊,$from_id是客戶端id,$data是傳遞的資料
    echo '接收到的資料';
    var_dump($data);
});

$server->on('close', function($server, $fd){
    echo '連結關閉';
});

$server->start();

然後進入終端對應的檔案所在目錄,執行命令(這裡檔名是index.php)

# php index.php   //執行開啟

出現此狀態,沒有報錯,說明開啟成功了。

# ps -ajft  //檢視程式狀態

兩種測試:

①telnet形式

# telnet 127.0.0.1 9501   

②軟體工具

最後點選軟體介面的關閉,伺服器同樣會出現提示資訊~

OK~

 

相關文章