❶ DELPHI基礎教程:Delphi客戶伺服器應用開發(一)[1]
客戶/伺服器的開發工作涉及定義客戶/伺服器的體系結構 然後再將該結構與其它一些對於客戶/伺服器的實現至關重要的系統結構和技術集成起來 Delphi 的Client/Sever版支持用戶開發客戶/伺服器結構的應用程序 本章中我們將闡述客戶伺服器體系結構原理 如何用Delphi構建客戶/伺服器的環境和Delphi存取遠程SQL伺服器的編程和注意事項
Delphi客戶/伺服器應用開發原理
客戶/伺服器體系結構
體系結構概述
客戶/伺服器系統的體系結構有以下兩個特點
● 是集合智能用戶工作站作為有效平台使用
● 平台和軟體之間的互操作性
客戶/伺服器結構包括連接在一個網路中的多台計算機 那些處理應用程序 請求另一計算機的服務的計算機稱為客戶機(Client) 而處理資料庫的計算機稱為伺服器(Server) 所有用戶都擁有他們自己的計算機來處理應用程序
客戶機計算機可以是大型機 小型機或微機 但是由於微機具有成本的優勢 因而通常選擇它們作為客戶機 同樣地 伺服器通常是一台微機但在需要較大能力時 也可以使用一台大型機或小型機 在資料庫環境下 通過若干稱作中間件(Middleware)的程序設計介面 客戶機可以與伺服器通信 這些介面提供應用程序和資料庫之間的連通性
客戶/伺服器結構也可以包括多個伺服器 然而在這種情況下 每個伺服器必定只處理一個不同的資料庫或提供一個唯一的服務 (注意 使用兩上或多個伺服器來處理同一個資料庫的結構不認為是客戶/伺服器系統 相反它是一個分布式資料庫系統〕
表 歸納了計算機在客戶/伺服器系統中的既定作用
表 客戶機和伺服器計算機的作用
━━━━━━━━━━━━━━━━━━━━━━━━━━━
客戶機功能 伺服器功能
───────────────────────────
管理用戶介面 從客戶機接受資料庫請求
從用戶接受數據 處理資料庫請求
處理應用邏輯 格式化結果並傳送給客戶機
產生資料庫請求 執行完整性檢查
向伺服器發送資料庫請求 提供並行訪問控制
從伺服器接收結果 執行恢復
格式化結果 優化查詢和更新處理
━━━━━━━━━━━━━━━━━━━━━━━━━━━
客戶機概述
如上所述 客戶機運神洞行那些使用戶能闡明其服務請求的程序 並將這些請求傳送到伺服器 由客戶機執行的計算稱為前端處理(front end processing) 前端處游局枯理具有所有與提供 操作和顯示數據相關的功能
客戶機軟體由網路介面軟體 支持用戶需求的應用程序以及實現網路能力的實用程序【例如電子郵件(E Mail)和群件(Groupware)】組成 網路介面軟體提供各種數據傳輸服務 應用程序軟體執行具體的任務 如字處理 電子表格和資料庫查詢生成 實用程序軟體通常執行幾乎所有網路用戶都要求的標准任務
伺服器概述
在伺服器上執行的計算稱為後端處理(back end processing) 後端硬體(back end hardware)是一台管理數據資源並執行資料庫引擎功能(如存儲 操作和保護數據)的計算機 在大型機環境下 後端網路(back end neork)提供大型計算機至大容量存儲設備 控制器以及文件伺服器的連接 在識別 評價和選擇適當的伺服器平台時 必須考臘豎慮將由該平台提供的服務 例如 一個資料庫伺服器可能需要快速處理能力 其他可能需要執行的網路服務有通信 應用程序 文件訪問以及只讀存儲器(CD ROM)服務 隨著新的應用技術的廣泛使用 可被提供的潛在服務還將繼續增加
伺服器軟體既包括遵循於OSI或其它網路結構的網路軟體 又包括由該伺服器提供給網路上客戶機的應用程序或服務軟體
中間件概述
中間件是一個軟體層 它保護應用程序開發人員避免受到各種通信協議 操作系統以及資料庫管理系統的影響 它為建立可與以前沿襲下來的應用程序並存的新應用程序打下了基礎
中間件有好幾種類型 它們包括應用程序設計介面(API) 遠程過程調用(RPC) 網路通信 資料庫訪問以及計算機輔助軟體工程(CASE)工具
由於客戶/伺服器系統需要集成各種不同結構的機器和技術 因而應用程序設計相當復雜 選擇適當的中間件可以消除程序設計人員為每個單獨協議和操作系統編寫代碼的麻煩
lishixin/Article/program/Delphi/201311/25137
❷ 伺服器開發需要學習什麼
伺服器所用到的知識:TCP/UDP,最基本的;
並發——你可以選擇使用select、poll,或者物汪是多線程、多辯嫌進程:如果你使用多線程,那麼就必須使用同步技術——信號量、互斥體、條件變數的一種或幾種,並且對於多線程技術,你還需要考慮使用進行線程分離與合並;
如果你使用了多進程,那麼同步技術就不是你需要考慮的了,你需要考慮的是進程相關的問題了,你是使用fork還是vfork,你該如何處理客戶端的請求,如何處理客戶端斷開連接後保證能夠處理完數據並且沒有僵屍進程產生,你還需要考慮高並發的問題;
你發送接受數據的時候,采罩灶仔用何種方式,是阻塞的還是非阻塞的,還有連接超時、重傳等問題
你是選擇TCP還是UDP,如果選擇UDP你可得忙了,需要你自己去進行重傳驗證,模擬TCP的三次握手,保證數據不會丟失,保證數據的有序性;
還有其他很多需要你考慮的,以上都是指在Linux下的C++,本人對windows C++不了解。
推薦書目:UNIX高級環境編程,UNIX網路編程,卷一。C++只不過是你使用這些技術的方式,不管你使用C還是C++,你都可以使用從這兩本書中學習到很多有用的知識,但是不能保證你就可以寫出高質量的伺服器程序。
❸ c語言怎麼開發伺服器
C語言開發談鉛唯伺服器可以說是一件非常困難和辛苦的事情。首先你需要對網路編程非常熟悉,因為伺服器需要通過網路進行訪問,它必須架構在網路協議上,然後你需要對網含培絡協議和相關激信的程序設計介面非常了解,比如socket編程、http協議及其編程介面等,然後你還要使用多線程,因為伺服器不可避免地要同時接受多個訪問請求。綜上,用C語言開發伺服器需要以上技術。
❹ 如何把一台電腦變成開發伺服器
如何把自己電腦設置成伺服器
這里我們講一下怎樣把自己的電腦變成一台網站伺服器來使用, 把自己的電腦用作網站伺服器並不難。
無需別的硬體或軟體就能夠輕松實現, 只需利用Windows95OSR2中提供的"個人Web服務"(PersonalWebServer)就可以。
如果想功能更加多一些的話, 就需要用 WindowsNTServer4.0。 您甚至還可以創作自己的HomePage發布信息、進行文件傳送或開展網上討論等等。
總言而之, 過去我們只能在網路上看見的, 現在全部都可以自己來完成。
一、Web伺服器功能的設置 安裝完Windows95OSR2後, 應該考慮讓別人用什麼樣的方法來訪問我們的Web伺服器, 如用電話撥號來訪問, 就應該安裝像Plus之類的電話撥號服務軟體。
如果只能提供電話撥號服務, 建議採用後一種方案, 即用 WindowsNTServer4.0, 因為它能提供256條電話線同時撥號。
當然我們也可以自己先連上一個公共的網路伺服器, 讓別人從這個伺服器訪問我們的Web伺服器, 但必須要有一個固定的IP地址 , 並在這個伺服器的DNS(域名伺服器)中注冊。
如果只有IP地址, 但沒有在DNS中注冊, 那麼區域網以外的用戶就不能訪問該個人Web伺服器。
不管用什麼方式, 我們都要為計算機設置TCP/IP協議和Web個人伺服器功能。
這可以在"網上鄰居"中設置。
方法非常簡單, 只需在"網上鄰居"的"屬性"中添加TCP/IP協議, 然後在"TCP/IP屬性"中的"IP地址"標簽中選擇"指定IP地址"並輸入正確的 IP地址。 在"DNS配置"標簽中選擇"使DNS無效"。
安裝個人Web伺服器的方法如下:
(1)在"網上鄰居"的"屬性"對話框"配置"標簽中單擊"添加"按鈕;
(2)在彈出的"選擇網路組件類型"對話框中, 在"廠商"欄中選擇"Microsoft", 在"網路服務"欄中選擇"PersonalWebServer", 然後單擊"確定"按鈕。這時Windows95將自動配置系統。 機器啟動後, 在Windows95所在驅動器的根目錄下面將建立一個名為Webshare的子目錄, 其下還有三個子目錄:WWWroot、Scripst和FTProot, 分別存放HTML超文本文件、CGI腳本文件和FTP文件傳送文件。
安裝完成後, 先可以進行一下測試。 啟動機器, 在"控制面板"中雙擊"個人Web伺服器"圖標, 在"服務"選項欄中分別選擇"HTTP"和"FTP"並單擊"啟動", 這樣就開啟這兩項服務功能。 也可以設成"自動方式", 這樣每次開機後, 就自動啟動Web伺服器功能。 啟動Web伺服器功能後, 我們可以打開 WWW瀏覽器(如IE), 在地址欄中鍵入我們的IP地址, 馬上就會出現Web個人伺服器中自帶的一個主頁。
然後可以在一個區域網中(如Intranet 網)進行測試。 方法是在網上的其他計算機中, 用WWW瀏覽器鍵入用作個人Web伺服器的計算機的注冊名, 這時應當出現同樣的主頁。 如果不能看見, 可以在個人Web伺服器上用DOS方式運行一下winipcfg命令, 看一看這台計算機的IP地址是不是正確。
下面介紹怎樣在WindowsNTServer4.0中文版中設置Web伺服器功能。
WindowsNTServer4.0中文版中的Web服務功能通過 IIS2.0(InternetInformationServer2.0)來實現。 在安裝WindowsNTServer4.0中文版的過程中 , 系統會提示"是否安裝IIS2.0?", 應回答"安裝"。 這樣啟動WindowsNTServer4.0中文版後, 就有Web伺服器的功能。 和 Windows95中的情況一樣, 在WindowsNT中也同樣存在用什麼樣的方法讓別人訪問Web伺服器的問題。
如果是在區域網中, 要安裝網卡、設置協議及IP地址等。 如果准備用數據機讓別人撥號訪問, 則要安裝數據機、電話線路。 還要在"服務項目"中添加"RAS遠程服務"功能, 並在這個功能的"屬性"中設置協議等等。 如果對這些設置不太清楚的話, 可以參考有關WindowsNT的書籍。
安裝完成後, 可以按照前面在Windows95OSR2 中的方法進行一下測試, 看看能不能在另外的計算機中用WWW瀏覽器看到IIS2.0提供的一個主頁例子。
二、製作自己的主頁 要製作主頁, 先要安裝一些必要的網頁製作軟體, 筆者使用的是FrontPage97。
先把個人Web伺服器中自帶的主頁修改成自己的主頁。
方法是進入這個主頁的目錄(Windows95在Webshare目錄的WWWroot子目錄中, WindowsNT在InetPub目錄的WWWroot子目錄中), 找到default.htm文件雙擊打開後, 選中工作條中的"編輯", 系統會自動調出FrontPage97, 這時就可以發揮自己的才能進行一番設計。
在這個主頁中, 我們能夠向外發布消息, 讓別人下載放在Webshare目錄下FTProot子目錄中的文件, 但是還不能實現雙向交流, 接收訪問者的信息。
三、安裝CGI系統 要使Web伺服器能為別人提供"寫"的功能, 必須在伺服器上安裝CGI(通用網關介面)系統。
通用網關介面是一個信息伺服器主機對外信息服務的標准介面(見圖2)。
事實上, 任何一種程序語言所設計的應用程序可以在伺服器主機上執行, 並利用CGI介面來傳送應用服務信息, 皆稱之為"CGI程序語言", 而用這種語言編寫的CGI程序又被稱為"腳本"。
現在常用的有Shell、VB、C/C++、java、Perl等語言。
以PerlforWin32為例, 您可以從Internet上下載自解壓文件pw32i316.exe, 然後安裝。
我們先來看看怎樣在Windows95OSR2版中的"個人Web服務"上安裝Perl系統: 啟動Windows95後, 用滑鼠雙擊下載下來的pw32i316.exe, 自解包就會自動運行解壓並進行安裝, 整個安裝過程可以全部回?quot;Y"完成。
完成後一般會在C盤根目錄下建立一個名為Perl的目錄, 並在其下建立幾個子目錄, 其中在Bin子目錄中有一個名為 perl.exe的可執行程序, 這就是Perl系統的主程序。
但是這時的Perl主程序並不能運行按Perl語言方法編寫的CGI腳本, 所以還必須修改 Windows95的注冊表。
方法是先運行注冊表編輯器regedit, 然後依次打開"HKEY_LOCAL_MACHINE \System \Currentcontrlset \Services \W3svc \Parameters \ScriptMap\", 加入".pl'C:\PERL\BIN\perl.exe%s%s'"。
退出注冊表文件後, 重新啟動計算機, 然後進入Perl 目錄下的Eg子目錄, 從中任選一個擴展名為.pl的文件並雙擊, 這時系統會出現一個列表窗口, 詢問使用什麼程序來打開這個文件, 這時應該在可選的可執行文件列表中找到"perl"(如果找不到可以在"其他"項中按路徑來指定), 並選定"始終使用該軟體打開這種類型的文件"項, 單擊"確定"即可。
在 WindowsNTServer4.0中的安裝過程與Windows95基本一樣, 只是修改注冊表時應運行regedit32, 加入的內容為:".pl:REG_SZ:C:\Perl\Bin\perl.exe%s%s"。
安裝完成Perl系統後, 我們就可以寫一個CGI腳本試一試。
下面的例子中, 程序1是用Perl語法規則寫成的一個CGI腳本, 這是一個 ASCII文本文件, 可用一般的記事本來編寫, 完成後用sample.pl文件名存檔。
注意不論是在WindowsNTServer4.0還是在 Windows95中, 都應把這個文件放在Scripts的子目錄中。
程序2是相應的HTML文件, 這個文件應放在WWWroot子目錄中。
接下來我們可以運行測試。
打開WWW瀏覽器, 在地址欄中鍵入:http://您的Web伺服器名/程序2的文件全名, 會出現一個填寫界面(見圖 3), 當輸入數據完成後, 單擊"確定"按鈕, 馬上就會把您填寫的這些內容寫在屏幕上(見圖4)。
當然, 我們也可以從網上的另一台計算機來測試。 這僅僅是一個很簡單的例子, 要想得到更好的結果(如問卷調查、網上留言、BBS等), 就要進一步學習一些有關Perl語言的知識。
總而言之, 通過不懈努力, 完全可以使我們的個人Web伺服器達到專業水平。如何把自己電腦設置成伺服器
❺ 自己如何搭建伺服器。
1、網站伺服器其實就是我們通常說的web主機,對應不同的編程語言,單間網站伺服器的軟體不同,一般情況下,在windows環境下,一般以.asp.net.html為主,在這種情況下,搭建網站伺服器就主要用到微軟系統自帶的iis(互聯網信息服務)就可以了,Linux環境下就是php了,相對應搭建的軟體就是apache+mssql了。
2、java是跨平台的,哪個都可以。對於初學者來說,建議使用asp方面伺服器,一方面是asp程序比較簡單易懂,在修改過程中,還可以藉助Dreamweaver等可視化編程工具,進行可視化編輯,另一方面windows環境下iis安裝極其簡單,在控制面板中——添加刪除程序—物纖—windows組建,下拉找到iis,放入系統盤即可安裝,無需下載任何東西。
3、在我們網站編程實際應用過程中,我們其實還用到一個簡易的iis伺服器,網路一下就能找到「簡易iis伺服器」,這是一些熱心的網友開發出來的網站服務應用程序,同樣可以起到iis的作用,但是支持的范圍有限,對於一些高端的iis服務不支持,但是作為日常測試網站程序已經是足夠了。
4、如果准備搭建的網站伺服器是准備支持php的,推薦安裝「一鍵php集成調試環境」,安裝極其簡單,下載後,下一步就可以,這個集成環境,融合了,php解釋器,mssql伺服器,phpadmin,Apache伺服器,php加速器等。可以說是一個完美的php伺服器環境。
5、下面還需要對網站伺服器就行設置,設置網站的路徑,使其指向你網站程序的存放目錄,設置網站首頁例如:index.asp,index.php等。然後測試一下自己的ip地址是多少,如果你的這台網站伺服器是放置在區域網環境當中的,那還需要你再路由器上設置一下埠映射,否則外網的電腦是訪問不了你這台電腦的,路由器就由於一道牆,他阻隔了你與外界的交流,也就是說保護著你這台電腦。
6、但是你現在想讓外部的電並蔽腦訪問你,就必須讓外部電腦了解你的位置,所以做一個埠映射就可以實現,具體如果做,請查看你所使用的路由器的型號來設置了,切記一定把80埠映射就可以,網站伺服器默認的埠是80埠。
(1)你上網沒有用路由,運營商單獨分給你一個ip地址,那你直接可以用你的ip讓外網的同學來訪問你的網站,我們這里用的8080埠,所以形式為:xxxxxxxxxx:8080.為了讓多的同學了解,我在_嗦一下,怎麼知道自己的ip地址,你不必用在cmd命令輸入ipconfig這種略顯專業的方法去獲取,其實哦重要在網路搜素「ip查詢」,第一個就是。
(2)用了路由器,一個路由器呆了好幾台電腦,比如說跟室友,這就需要你去路由絕螞州管理頁面設置一下,埠映射,讓被人訪問你們的ip地址時,映射到你的電腦,在瀏覽器中輸入192.168.1.1(以你的路由為准),進入路由管理頁面,操作,
轉發規則-----虛擬伺服器-------添加新條目
埠我們沒改,所以填8080,IP地址為你的電腦在區域網中的地址,怎麼樣知道自己的區域網中的地址,很簡單自己網路一下,只要區域網里的電腦不是太多,一般為192.168.1.XXX,我這里為192.168.1.101,然後點擊保存,OK,然後外網就可以用你們IP去訪問你的網站了。
效果圖如下:
這時可以把這個網址發給你的同學,試一下,他能不能訪問你的網站,答案是肯定的!
3、但是又有新問題了,你第二天打開路由,或者再次上網時,運營商會重新分配給你一個新的IP地址,難道你讓你同學訪問時,再次把這個IP地址發給他嗎?顯然這是不合理了。
我們就想有一個動態域名多好。這里給大家介紹一款軟體「花生殼」,下載安裝,然後注冊後,你就會獲得一個免費的二級域名,每次開機自啟後,就會將花生殼服務端中的IP數據更新成你新的IP地址,然後你每次用你固定的域名來訪問時,就會解析到你新的IP地址。
:
雙擊你的域名,看有沒有顯示出「經檢測,您的域名已激活並指向正確」!
OK,到這里,沒有路由的同學,就可以直接用你的域名訪問了!
有路由的同學,還得多操作一步:
再次進入路由管理頁面,操作:
點擊「動態DNS」,這時如果你的上述操作都沒問題的話,服務提供者那一欄已經自動填充成花生殼的網址了,然後輸入用戶名,密碼,點擊登錄,如果顯示為「連接成功」,那點擊「保存」。到這里,終於大功告成,看一下最終效果圖:
可以看到,我用我的域名成功的訪問到了我的網站。
PS:有時顯示「驗證成功」時也是個假象,一點擊「保存」時,又顯示為「驗證失敗」,再點擊「登錄」,多點擊幾次「保存」,直到它一直顯示為「驗證成功」即可,反正就是多試幾次。
❻ 如何使用Delphi設計強大的伺服器程序[1]
現在網路的流行 使得伺服器程序得到了廣泛的應用 那麼我們使用Delphi如何設計出強壯的伺服器呢?
有人說 如果要設計伺服器的話 一定要使用VC來設計 其實這個人說的有一定道理 因為如果你要使用Delphi來設計伺服器的話 要想設計高效的伺服器就不要使用Delphi帶來的大部分的控制項(最好不要使用Delphi控制項) 為什麼呢?下面我會告訴大家 這樣的話你全部使用API來設計伺服器 就同VC沒有太大的區別了
使用Delphi來設計伺服器程序 具體選擇是使用窗體消息模式還是使用完成埠的模式 這主要看你的用戶連接數量來決定 如果你的用戶連接數量小於 人的話 並且處理的數據量不大的話 可以使用窗體的消息模式來進行伺服器的開發 而如果大於 這樣最好使用完成埠來開發伺服器 我這里建議大家最好使用完成埠模式 因為你不可能保證你的用戶數量不變化 同時由於你的伺服器如果運行一段時間沒有問題的話 最好做成WIN 的服務程序 這樣可以保證後期的維護比較少
現在介紹你在開發Delphi伺服器的時候需要注意地方
不要在程序中使用String變數
這個也是在實際的開發過程中發現的 我最開始開發的時候 為了簡單一些 就大量使用String變數來開發程序 但程序總是在運行一段時間後出現問題 後來查原因也不太清楚 到網上查資料 發現有人介紹不要使用String來做變數 將自己的程序全部修改成數組問題就基本解決了
伺服器在與客戶端傳遞的時候一定要進行加密 但使用什麼類型的加密演算法呢?不要使用那種需要大量運算的罩滲演算法如RSA等演算法 最好使用XOR加密或DES換位加密演算法 這樣主要是滿足普通的加密密文的要求 又保證伺服器的運算速度 你也可以使用RSA加密密文 但這會造成伺服器處理變慢 而如果遇到大量的處理時候 很容易伺服器就拒絕伺服器
使用原ADO函數來連接資料庫
伺服器程序通常都與資料庫想結合 那麼使用Delphi開發的時候 通常使用ADO的控制項來製作 但如果你學習ADO手冊會發現 對於伺服器其實不需要控制項來完成數據的操作 可以直接使用ADO相應的函數來完成 主要因為伺服器程序與資料庫通常都是比較簡單的操作 沒有很復雜的 所以使用原ADO模式就可以了 這樣也減少由於ADO控制項帶來的問題
應多使用 池
伺服器在設計的過程 一定要大量的變數支持 如果不使用池這個概念 你的程序將在創建和釋放變數過程中浪費大量的時間 而且容易出現問題 設計過程中盡量不要創建和釋放變數 如果能考慮到的變數 都在開始的運行的時候創建完畢 這樣可以加快程序的運行速度 減少沖突 具體如何使用池這個技術 以後有時間再考慮寫一篇介紹一下
熟練使用指針操作
如果你不熟悉指針操作 那麼你幾乎無法設計出高效的伺服器 如果你要真正的理解指針的概念 對喊困於設計伺服器來說就是如虎添翼
下面舉個例子 如使用Recv接收數據到物滲脊Buffer中後 你需要進行解密操作 你可以使用下面的方法進行
var a b:array [ ] of byte; i :integer; ResultBuffer :array [ Max] of byte;begin for i := to Sizeof(Buffer) div do begin move(Buffer[(i )* + ] a ); Des(a b true); //這里使用DES加解密處理 move(b ResultBuffer[(i )* + ] ); end;endlishixin/Article/program/Delphi/201311/24703
❼ 如何開發小程序
1、購買雲伺服器。
雲伺服器有很多家,我之前一直在用阿里雲,最近在雙十一活動時又購置了一款騰訊雲。
關於伺服器的配置根據自身經濟條件來決定,大部分雲平台都會不定時推出一些優惠活動,購買橡清年限越多折扣也會越大。
2、申請域名。
能夠申請到心儀到域名當然最好,此旦申請不到也不要緊,如果單純只是小程序伺服器域名解析無影響,申請域名之後還需要備案。
3、服務開發。
有基礎的自然是使用自己拿手的語言,零基礎的話個人覺得nodejs是不錯的選擇,我選擇用nodejs的原因是學習成本低,小程序端js開發,app目前我也是採用跨平台的flutter,語法相近。
4、部署伺服器。
伺服器開發完成後,部署到伺服器,這里需要了解下伺服器的環境搭建,常用運維命令,個人建議自己親力親為,成長會比較快。
(7)伺服器程序如何開發擴展閱讀在公眾號推文中嵌入小程序碼,用戶掃描後立刻進入購買支付界面,購買公眾號運營者自營或代為推廣的品牌。
小程序碼已經數量無限,完全可以做到一個公眾號一個推廣碼。小程序的數據分析正在迅速完善,假以時日完全可以做到效果評估。
那麼對一個品牌商來說梁扒前,他只要合作一批公眾號、每個號一個小程序碼,那麼由誰帶來了流量、帶來了多少流量、交易轉化如何,統統可以盡收眼底,這個廣告結算就非常簡單了。