本文只簡單實現使用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....