- 相關(guān)推薦
PHP開發(fā)CS結(jié)構(gòu)的技巧
PHP是一門高效的網(wǎng)絡(luò)編程語言,由于它具有編寫靈活、運(yùn)行快速等優(yōu)點(diǎn),迅速成為Web程序員的首選語言。以下是小編為大家搜索整理的PHP開發(fā)CS結(jié)構(gòu)的技巧,希望能給大家?guī)韼椭?更多經(jīng)常內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
PHP開發(fā)CS結(jié)構(gòu)的技巧 1
核心提示:用PHP開發(fā)C/S結(jié)構(gòu)。
服務(wù)器
// Server
// 設(shè)置錯誤處理
error_reporting (E_ALL);
// 設(shè)置運(yùn)行時間
set_time_limit (0);
// 起用緩沖
ob_implicit_flush ();
$ip = "127.0.0.1"; // IP地址
$port = 1000; // 端口號
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // 創(chuàng)建一個SOCKET
if ($socket)
echo "socket_create() successed! ";
else
echo "socket_create() failed:".socket_strerror ($socket)." ";
$bind = socket_bind ($socket, $ip, $port); // 綁定一個SOCKET
if ($bind)
echo "socket_bind() successed! ";
else
echo "socket_bind() failed:".socket_strerror ($bind)." ";
$listen = socket_listen ($socket); // 間聽SOCKET
if ($listen)
echo "socket_listen() successed! ";
else
echo "socket_listen() failed:".socket_strerror ($listen)." ";
while (true)
{
$msg = socket_accept ($socket); // 接受一個SOCKET
if (!$msg)
{
echo "socket_accept() failed:".socket_strerror ($msg)." ";
break;
}
$welcome = "Welcome to PHP Server! ";
socket_write ($msg, $welcome, strlen ($welcome));
while (true)
{
$command = strtoupper (trim (socket_read ($msg, 1024)));
if (!$command)
break;
switch ($command)
{
case "HELLO":
$writer = "Hello Everybody!";
break;
case "QUIT":
$writer = "Bye-Bye";
break;
case "HELP":
$writer = "HELLO QUIT HELP";
break;
default:
$writer = "Error Command!";
}
socket_write ($msg, $writer, strlen ($writer));
if ($command == "QUIT")
break;
}
socket_close ($msg);
}
socket_close ($socket); // 關(guān)閉SOCKET
客戶端
// Client
// 設(shè)置錯誤處理
error_reporting (E_ALL);
// 設(shè)置處理時間
set_time_limit (0);
$ip = "127.0.0.1"; // IP 地址
$port = 1000; // 端口號
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // 創(chuàng)建一個SOCKET
if ($socket)
echo "socket_create() successed! ";
else
echo "socket_create() failed:".socket_strerror ($socket)." ";
$conn = socket_connect ($socket, $ip, $port); // 建立SOCKET的連接
if ($conn)
echo "Success to connection![".$ip.":".$port."] ";
else
echo "socket_connect() failed:".socket_strerror ($conn)." ";
echo socket_read ($socket, 1024);
$stdin = fopen (php://stdin, r);
while (true)
{
$command = trim (fgets ($stdin, 1024));
socket_write ($socket, $command, strlen ($command));
$msg = trim (socket_read ($socket, 1024));
echo $msg." ";
if ($msg == "Bye-Bye")
break;
}
fclose ($stdin);
socket_close ($socket);
PHP開發(fā)CS結(jié)構(gòu)的技巧 2
php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
C/S架構(gòu)是客戶端/服務(wù)器體系結(jié)構(gòu),其中客戶端依靠服務(wù)器來獲取資源,C/S架構(gòu)通過提供查詢響應(yīng)來減少網(wǎng)絡(luò)流量。它具有三種類型結(jié)構(gòu)分別是一層架構(gòu),兩層架構(gòu)和三層架構(gòu)
C/S架構(gòu)是當(dāng)今網(wǎng)絡(luò)開發(fā)架構(gòu)的一大主流技術(shù),由美國Borland公司最早研發(fā)。接下來將在文章中為大家詳細(xì)介紹這一架構(gòu),具有一定的參考價值,希望對大家有所幫助。
【推薦課程:PHP教程】
C/S架構(gòu)的含義
C/S架構(gòu)全稱為客戶端/服務(wù)器體系結(jié)構(gòu),它是一種網(wǎng)絡(luò)體系結(jié)構(gòu),其中客戶端是用戶運(yùn)行應(yīng)用程序的PC端或者工作站,客戶端要依靠服務(wù)器來獲取資源。C/S架構(gòu)是通過提供查詢響應(yīng)而不是總文件傳輸來減少了網(wǎng)絡(luò)流量。它允許多用戶通過GUI前端更新到共享數(shù)據(jù)庫,在客戶端和服務(wù)器之間通信一般采用遠(yuǎn)程調(diào)用(RPC)或標(biāo)準(zhǔn)查詢語言(SQL)語句。
C/S架構(gòu)的'基本特征:
。1)客戶端進(jìn)程包含特定于解決方案的邏輯,并提供用戶與應(yīng)用程序系統(tǒng)其余部分之間的接口。服務(wù)器進(jìn)程充當(dāng)管理共享資源(如數(shù)據(jù)庫,打印機(jī),調(diào)制解調(diào)器或高性能處理器)的軟件引擎。
。2)前端任務(wù)和后端任務(wù)對計算資源有著根本不同的要求,例如處理器速度,內(nèi)存,磁盤速度和容量以及輸入/ 輸出設(shè)備。
。3)客戶端和服務(wù)器的硬件平臺和操作系統(tǒng)通常不相同?蛻舳撕头⻊(wù)器進(jìn)程通過一組明確定義的標(biāo)準(zhǔn)應(yīng)用程序接口(API)和RPC進(jìn)行通信。
。4)C/S架構(gòu)的一個重要特征是可擴(kuò)展性,它們可以水平或垂直縮放。水平擴(kuò)展意味著添加或刪除客戶端,工作站只會對性能產(chǎn)生輕微影響。垂直擴(kuò)展意味著遷移到更大更快的服務(wù)器計算機(jī)或多服務(wù)器中。
C/S架構(gòu)的類型
一層架構(gòu)
在此類型C/S架構(gòu)設(shè)置中,用戶界面,營銷邏輯和數(shù)據(jù)邏輯存在于同一系統(tǒng)中。但是由于數(shù)據(jù)差異導(dǎo)致難以管理。例MP3播放器,MS Office都屬于單層應(yīng)用程序。
兩層架構(gòu)
在這種類型中,用戶界面存儲在客戶端機(jī)上,數(shù)據(jù)庫存儲在服務(wù)器上。數(shù)據(jù)庫邏輯和業(yè)務(wù)邏輯在客戶端或服務(wù)器上歸檔,但需要進(jìn)行維護(hù)。如果在客戶端收集業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,則將其命名為胖客戶端瘦服務(wù)器體系結(jié)構(gòu)。如果在服務(wù)器上處理業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,則稱為瘦客戶端胖服務(wù)器體系結(jié)構(gòu)。這被認(rèn)為是負(fù)擔(dān)得起的。
在雙層體系結(jié)構(gòu)中,客戶端和服務(wù)器必須直接合并。如果客戶端向服務(wù)器提供輸入,則不應(yīng)該有任何中間件。這樣做是為了快速獲得結(jié)果并避免不同客戶之間的混淆。例如,在線票務(wù)預(yù)訂軟件使用這種雙層架構(gòu)。
三層架構(gòu)
在三層架構(gòu)中,需要使用到額外的中間件,這意味著客戶端請求需要通過該中間層進(jìn)入服務(wù)器,服務(wù)器的響應(yīng)首先由中間件接收,然后再接收到客戶端。中間件存儲所有業(yè)務(wù)邏輯和數(shù)據(jù)通道邏輯,中間件提高了靈活性并提供了最佳性能。
三層結(jié)構(gòu)被分成三個部分,即表示層(客戶層),應(yīng)用層(業(yè)務(wù)層)和數(shù)據(jù)庫層(數(shù)據(jù)層)。客戶端系統(tǒng)管理表示層,應(yīng)用程序服務(wù)器負(fù)責(zé)應(yīng)用程序?qū),服?wù)器系統(tǒng)負(fù)責(zé)監(jiān)視數(shù)據(jù)庫層。
【PHP開發(fā)CS結(jié)構(gòu)的技巧】相關(guān)文章:
PHP常用開發(fā)工具分析06-27
20條PHP代碼優(yōu)化技巧05-06
為什么選php語言開發(fā)制作全站11-10
PHP中的Division by zero報錯處理技巧02-23
PHP常量介紹04-21
PHP變量介紹02-28
PHP的基本作用03-17
php環(huán)境搭建06-11
PHP基本語法04-29