Subversion Repositories php-qbpwcf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 liveuser 1
<?php
2
 
3
#宣告指派命名空間
4
namespace qbpwcf;
5
 
6
#匯入外部套件
7
include("../allInOne.php");
8
 
9
/*
10
 
11
#提示目前要測試的涵式
12
echo"<hr>sock::unixDomainSockServer - testCase 1<p>";
13
 
14
#函式說明:
15
#建立 unix domain socket server, 僅提供具備檔案存取權限的用戶使用.
16
#回傳結果:
17
#$result["status"],"true"代表執行正常;"false"代表執行不正常.
18
#$result["error"],錯誤訊息陣列.
19
#$result["function"],當前執行的函式名稱.
20
#必填參數:
21
#$conf["sock"],字串,socket檔案要放在哪邊,名稱為何.
22
$conf["sock"]="sock_unixDomainSockServer_testCase1";
23
#$conf["fileArgu"],字串,變數__FILE__的內容.
24
$conf["fileArgu"]=__FILE__;
25
#可省略參數:
26
#$conf["changeOwner"],字串,要將socket檔案的擁有着權限進行修改."user.group"代表擁有者帳號為user,群組為group.
27
#$conf["changeOwner"]="";
28
#$conf["changePermission"],整數,要將socket檔案的權限設為多少.ex: 666(所有帳戶都有存取的權限) 或 660(僅有擁有者與群組帳戶有存取的權限) 或 600(只有擁有者有權限執行).
29
#$conf["changePermission"]="";
30
#參考資料:
31
#http://php.net/manual/en/function.stream-socket-server.php
32
$unixDomainSockServer=sock::unixDomainSockServer($conf);
33
unset($conf);
34
 
35
#如果建立 unix domain socket 失敗
36
if($unixDomainSockServer["status"]==="false"){
37
 
38
	#印出內容
39
	var_dump($unixDomainSockServer);
40
 
41
	#結束執行
42
	exit;
43
 
44
	}#if end
45
 
46
#印出內容
47
var_dump($unixDomainSockServer);
48
 
49
*/
50
 
51
/*
52
 
53
#提示目前要測試的涵式
54
echo"<hr>sock::tcpServer - testCase 1".PHP_EOL;
55
 
56
#函式說明:
57
#建立tcp server
58
#必填參數:
59
#$conf["port"],整數,tcp server listen port.
60
$conf["port"]=7053;
61
#可省略參數:
62
#$conf["ip"],整數字串,tcp serer listen ip, default is 0.0.0.0.
63
#$conf["ip"]="0.0.0.0";
64
#$conf["processFuncs"],字串陣列,要將收到的訊息作什麼事情的函式們,預設為空陣列.
65
$conf["processFuncs"]=array("qbpwcf\sock::echoService","qbpwcf\sock::endService");
66
$tcpServer=sock::tcpServer($conf);
67
unset($conf);
68
 
69
#如果建立 tcp socket 失敗
70
if($tcpServer["status"]==="false"){
71
 
72
	#印出內容
73
	var_dump($tcpServer);
74
 
75
	#結束執行
76
	exit;
77
 
78
	}#if end
79
 
80
#印出內容
81
var_dump($tcpServer);
82
 
83
*/
84
 
85
/*
86
 
87
#提示目前要測試的涵式
88
echo"<hr>sock::tcpServer - testCase 2".PHP_EOL;
89
 
90
#函式說明:
91
#建立tcp server
92
#必填參數:
93
#$conf["port"],整數,tcp server listen port.
94
$conf["port"]=7890;
95
#可省略參數:
96
#$conf["ip"],整數字串,tcp serer listen ip, default is 0.0.0.0.
97
#$conf["ip"]="0.0.0.0";
98
#$conf["processFuncs"],字串陣列,要將收到的訊息作什麼事情的函式們,預設為空陣列.
99
#$conf["processFuncs"]=array();
100
#$conf["socketSelectTimeountSec"],整數,代表要等候幾秒才抓取有異動的連線,預設為0代表立即抓取有異動的連線.
101
#$conf["socketSelectTimeountSec"]=0;
102
#$conf["socketSelectTimeountUsec"],整數,代表要等候幾微秒才抓取有異動的連線,預設不使用.
103
$conf["socketSelectTimeountUsec"]=5000;
104
$tcpServer=sock::tcpServer($conf);
105
unset($conf);
106
 
107
#如果建立 tcp socket 失敗
108
if($tcpServer["status"]==="false"){
109
 
110
	#印出內容
111
	var_dump($tcpServer);
112
 
113
	#結束執行
114
	exit;
115
 
116
	}#if end
117
 
118
#印出內容
119
var_dump($tcpServer);
120
 
121
*/
122
 
123
/*
124
 
125
#提示目前要測試的涵式
126
echo"<hr>sock::udpServer - testCase 1".PHP_EOL;
127
 
128
#函式說明:
129
#建立udp server
130
#必填參數:
131
#$conf["port"],整數,udp server listen port.
132
$conf["port"]=7051;
133
#可省略參數:
134
#$conf["ip"],整數字串,udp serer listen ip, default is 0.0.0.0.
135
#$conf["ip"]="0.0.0.0";
136
#$conf["processFuncs"],字串陣列,要將收到的訊息作什麼事情的函式們,預設為空陣列.
137
$conf["processFuncs"]=array("qbpwcf\sock::echoServiceU","qbpwcf\sock::endServiceU");
138
#$conf["welcomeMsg"],字串,是否要顯示歡迎訊息,預設為"true"代表要顯示歡迎訊息;"false"代表不要顯示歡迎訊息.
139
$conf["welcomeMsg"]="false";
140
$udpServer=sock::udpServer($conf);
141
unset($conf);
142
 
143
#如果建立 udp socket 失敗
144
if($udpServer["status"]==="false"){
145
 
146
	#印出內容
147
	var_dump($udpServer);
148
 
149
	#結束執行
150
	exit;
151
 
152
	}#if end
153
 
154
#印出內容
155
var_dump($udpServer);
156
 
157
*/
158
 
159
/*
160
 
161
#提示目前要測試的涵式
162
echo"<hr>sock::udpServer - testCase 2".PHP_EOL;
163
 
164
#函式說明:
165
#建立 udp server
166
#必填參數:
167
#$conf["port"],整數,udp server listen port.
168
$conf["port"]=7051;
169
#可省略參數:
170
#$conf["ip"],整數字串,udp serer listen ip, default is 0.0.0.0.
171
#$conf["ip"]="0.0.0.0";
172
#$conf["processFuncs"],字串陣列,要將收到的訊息作什麼事情的函式們,預設為空陣列.
173
#$conf["processFuncs"]=array();
174
#$conf["welcomeMsg"],字串,是否要顯示歡迎訊息,預設為"true"代表要顯示歡迎訊息;"false"代表不要顯示歡迎訊息.
175
#$conf["welcomeMsg"]="true";
176
#$conf["socketSelectTimeountSec"],整數,代表要等候幾秒才抓取有異動的連線,預設為0代表立即抓取有異動的連線,但是會吃很多cpu.
177
#$conf["socketSelectTimeountSec"]=1;
178
#$conf["socketSelectTimeountUsec"],整數,代表要等候幾微秒才抓取有異動的連線,預設不使用.
179
$conf["socketSelectTimeountUsec"]=5000;
180
#參考資料:
181
#https://www.jianshu.com/p/097463d08664
182
$udpServer=sock::udpServer($conf);
183
unset($conf);
184
 
185
#如果建立 udp socket 失敗
186
if($udpServer["status"]==="false"){
187
 
188
	#印出內容
189
	var_dump($udpServer);
190
 
191
	#結束執行
192
	exit;
193
 
194
	}#if end
195
 
196
#印出內容
197
var_dump($udpServer);
198
 
199
*/
200
/*
201
 
202
#提示目前要測試的涵式
203
echo"<hr>sock::udpClient - testCase 1".PHP_EOL;
204
 
205
#函式說明:
206
#udp client
207
#回傳結果:
208
#$result["status"],"true"代表執行正常;"false"代表執行不正常.
209
#$result["error"],錯誤訊息陣列.
210
#$result["function"],當前執行的函式名稱.
211
#$result["argu"],使用的參數.
212
#$result["content"],取得的回應內容字串,為每個回應的內容直接串接.
213
#$result["contentArray"],取得的回應字串陣列,為每個回應的內容,各別儲存成陣列中的元素.
214
#$result["sock"],可重複使用的socket資源.
215
#必填參數:
216
#$conf["port"],整數,target port.
217
$conf["port"]=7053;
218
#$conf["dataToSend"],陣列字串,要傳送的多個訊息,每個訊息傳送結束後才會讀取回應.
219
$conf["dataToSend"]=array("123456");
220
#可省略參數:
221
#$conf["ip"],整數字串,tcp serer listen ip, default is 127.0.0.1.
222
$conf["ip"]="aesopower-cms-demo.qbpwcf.org";
223
#$conf["timeout"],整數,預設為10秒,代表接收訊息的等待時間上限.
224
#$conf["timeout"]=10;
225
#$conf["secSleepAfterSend"],整數,預設為1秒.
226
#$conf["secSleepAfterSend"]=1;
227
#$conf["closeAtEnd"],字串,預設為"true",代表函式結束後要斷開連線.
228
#$conf["closeAtEnd"]="true";
229
#$conf["sock"],resource,要重複使用的socket資源,預設不指定.
230
#$conf["sock"]=;
231
#參考資料:
232
#https://www.php.net/manual/en/sockets.examples.php
233
$udpClient=sock::udpClient($conf);
234
unset($conf);
235
var_dump($udpClient);
236
var_dump(gettype($udpClient["sock"]));
237
 
238
*/
239
 
240
?>