swoole學習 3 搭建UDP服務

2021-09-13 12:08:30 字數 2342 閱讀 7155

本文只簡單實現使用swoole搭建udp伺服器例項,具體流程引數配置詳情請參照swoole官網。

udp.php

//建立server物件 監聽127.0.0.1:9502埠 伺服器型別為upd

$udp =

newswoole_server

('127.0.0.1'

,9502

,swoole_process

,swoole_sock_udp);

//設定伺服器執行配置引數

$udp-

>

set(

['worker_num'

=>4,

//程序數

'max_request'

=>

50//最大請求50次數結束執行])

;/**

* sendto方法 傳送資料到客戶端

* @param int address 客戶端ip

* @param int port 埠號

* @param string $data 文字資料

*///監聽資料接收事件

$udp-

>on(

'packet'

,function

($udp,$data,$clientinfo));

//啟動伺服器

$udp-

>

start()

;

udp伺服器與tcp伺服器不同,udp沒有連線的概念。啟動server後,客戶端無須connect,可直接向伺服器監聽的9502埠傳送資料,對應的事件是packet。

函式原型:

bool server->sendto(string $ip, int $port, string $data, int $server_socket = -1);

udp_client.php

//建立swoole客戶端服務 socket型別為udp

$udp_client =

newswoole_client

(swoole_sock_udp);

//php cli常量 stdout

fwrite

(stdout

,'請輸入訊息:');

//獲取客戶端輸入的內容資料 stdin可以拿到在dos下輸入的內容,fgets讀取這個stdin檔案控制代碼

$msg =

trim

(fgets

(stdout))

;/**

* sendto方法 傳送資料到server

* @param int address 客戶端ip

* @param int port 埠號

* @param string $data 文字資料

*/$send_result = $udp_client-

>

sendto

('127.0.0.1'

,9502

,$msg);if

($send_result ==

false

)/**

* 接收伺服器資料

* @param int $size 接收資料的快取區最大長度,此引數不要設定過大,否則會占用較大記憶體

* @param bool $waitall 是否等待所有資料到達後返回

*/$server_msg = $udp_client-

>

recv

($size=

65535

,$watill=0)

;echo $server_msg;

函式原型:

swoole_client->sendto

向任意ip:port的主機傳送udp資料報,僅支援swoole_sock_udp/swoole_sock_udp6型別的swoole_client物件。

bool swoole_client->sendto(string $ip, int $port, string $data);

執行udp.php 啟動udp伺服器

客戶端測試 輸入hello

服務端 輸出客戶端資訊

搭建python機器學習restful服務

因為最近想學習機器學的相關知識,課程也看了幾個,書也讀了幾本,但是還是沒有什麼清晰的感覺,始終找不到門的鑰匙。好像黑崎一護成為死神時,身邊無數的絲帶,卻始終看不見真正的紅色的那條。既然效果不佳,作為程式設計師,還是先從 開始吧。因為一直做後台開發,都是對外提供服務。那麼同樣角度思考機器學習這事兒,除...

Linux學習之伺服器搭建 Apache伺服器

apache伺服器是現在最為流行的web伺服器,它建立在dns網域名稱解析之下。它的基本操作環境是兩台已經ping通的虛擬機器,並且已經通過網域名稱解析。apache的搭建不是特別難,他只是提供乙個平台。現在開始搭建apache伺服器。第一步 開啟centos搭建好基礎的網路配置 第三步 啟動apa...

tensorflow學習3 搭建自己的神經網路

這一節講的主要是構造乙個自己的神經網路。import tensorflow as tf import numpy as np 構造資料 x data np.linspace 1,1,300,dtype np.float32 np.newaxis 在 1 到 1之間生成300個資料,noise np....