【摘要】隨著數據庫網絡化編程的廣泛應用,C/S(Client/Server)編程的地位越來越重要。利用Delphi提供的網絡套接字組件(Socket),可以輕松實現C/S系統的編程。
【關鍵詞】C/S;Delphi;Socket
1.基于C/S的體系結構
利用Delphi提供的套接字組件(Socket)組件來實現一個C/S系統數據庫的編程,核心組件是TServerSocket和TCientSokcet組件,這兩個組件將分別處在兩個窗體上——即客戶機和服務器上,其中客戶端程序將利用TClientSocket組件實現對服務器端數據的提交,而服務器端程序則通過利用TServerSocket組件對客戶端程序發送的數據進行分析和驗證,然后返回客戶端一個成功信息。通過該程序,可以讓數據庫的修改操作駐留在客戶機上進行,而對于數據則必須通過服務器端的驗證才能通過。
2.C/S系統編程的基本步驟
本文需要建立兩個工程,一個用于客戶端程序用于數據輸入,另一個用于服務器端作用數據存儲。
1)新建一個工程,用來開發客戶端程序,在客戶端,需要用到一個數據源,其中主要包括一個公司的各種信息,包括Company、Address、Email、State、Country、Contact、Compid等字段,在進行程序開發前,需要建立這樣的一個數據源。
2)在客戶端程序程序中,注意Compid字段的值不是有用戶添加的,需要通過服務器驗證后由服務器端返回,所以在客戶端程序中,改字段為不可操作狀態,并注意在創建數據源時設置為可為空。
3)在客戶端,組件的核心方法是在“發送所有數據”按鈕的單擊事件中處理的,在該事件中,需要用戶添加的數據信息發送到服務器端,可以通過創建一個字符串對象來保存該信息,然后調用ClientSocket1空間的SendText方法將該信息發送出去,在該字符串列表中,所保存的數據信息是以”fieldname=fieldvalue”格式保存的。
4)在Actions上右擊,在彈出的快捷菜單上選擇“Add Item”命令,添加一個ActionItem,可以在ActionEditor中看到該對象的各種屬性。在網絡模塊中,事件比較少,各種方法的實現都是基于ActionIcem來實現的,其中最重要的事件就是OnAction事件。
5)為了實現對訪問次數的實時更新,需要記錄下原來網頁訪問的次數,然后再網頁每次打開時自動導入,在本程序中,將建立一個text文件對象,利用Writeln方法可以往其中寫入瀏覽次數,當網頁打開時,則利用Readln方法從文件中將原來的數據提取出來:
Logfilename:=’weblog.log’;
System.Assign(logfile,logfilename);
Try
If fileexists(logfilename)then
Begin
Reset(logfile);
Readln(logfile,nhit);
Inc(nhit);
End
Else
Nhit:=0;\
Rewrite(logfile);
Writeln(logfile,nhit);
Finally
Close(logfile);
End;
Response.content:=inttostr(nhit);
6)現在一般的網頁計數器都采用圖形來顯示數據,通過建立一個TBitmap對象可以讓程序繪制內存位圖并返回給前端網頁。讓后將該位圖附在TjpegImage對象上,在通過該對象將圖片轉換為流式對象,保存該流式文件對象,讓后將它賦給Response對象,讓后利用Response對象將該文件寫入網頁文件中。
7)保存該工程文件。為了看到實際效果,可以建立一個html文件,在該文件中,建立一個超鏈接,指向所開發的程序。在瀏覽器中瀏覽該文件并打開鏈接,就可以看到程序的最終結果。
3.結束語
總之,隨著數據庫網絡化編程的越來越重要,C/S編程的地位在不斷的提升,本文通過實例說明了C/S編程的實用性和可行性。
參考文獻
[1]網冠科技.Delphi 5.0控件時尚編程百例[M].機械工業出版社,2001,07.
[2]劉藝.Delphi程序設計大學教程[M].機械工業出版社,2005,06.
作者簡介:劉暢(1978—),現供職于吉林工商學院信息工程學院,研究方向:計算機網絡。