999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Delphi下的點對點聊天工具編程

2009-04-29 00:00:00
電腦知識與技術 2009年5期

摘要:局域網系統涉及了網絡通訊技術,包括傳輸控制協議(TCP) 和用戶數據包協議(UDP)的應用,該文對其進行了簡要的分析和研究,并在此基礎上給出使用Delphi和socket函數的方法。利用Delphi 的TServerSocket,TclientSocket 構件實現局域網內基于 TCP/IP 的通信,文章最后給出了編程界面和程序演示界面,在局域網環境下展示了程序的運行。

關鍵詞:網絡編程;TCP;IP地址;UDP;Delphi

中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2009)05-1239-03

Pear-to-Pear Communication Programme Using Delphi

ZHANG Yan

(The Power Supply Bureau of Baotou, Baotou 014030,China)

Abstract: This paper discusses the network communication technology related to LAN including the application of TCP/IP,as well as acquisition of IP address by means of Winsock2.A program for network transmission based on TCP/IP by using TserverSocket,TclientSocket in Delphi is demonstrated. The program works well.

Key words: web programme; TCP;IP address;delphi

1 引言

Delphi具有如下的優點:可視化開發環境的性能;編譯器高速度和已編譯代碼的高效率;編程語言的功能強大,復雜性低;數據庫結構的靈活,可擴展性強;框架對設計和使用模式的擴充支持。應用delphi可以很容易地在完成一個C/S結構的局域網系統的設計和實現。這通常涉及到圖形用戶界面設計、TCP/IP協議、UDP 數據廣播、局域網內文件傳輸等一系列技術。本文通過一個簡單示例程序,展示了在Del2phi 語言中進行UDP 數據廣播及利用Delphi的TServerSocket 、TClientSocket 構件實現局域網內基于TCP/IP 通信的一般步驟和方法。

2 TCP/IP/UDP協議

傳輸控制協議TCP (Transmission Control Protocol) 是Internet 最基本的網絡通信協議,它由一系列協議組成,下面分別概括介紹TCP/IP協議族中的各協議 。

IP協議是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。IP協議提供的是不可靠無連接的數據報傳送服務,它只提供最好的傳輸服務,但不保證IP數據報能成功的達到目的地。IP層也可配置成路由器,路由器比主機多了數據報轉發的功能即對于目的地址為非本機地址的數據報進行轉發。

TCP是屬于傳輸層的協議,向應用層提供一種面向連接的、可靠的字節流服務。面向連接意味著兩個使用TCP的應用(通常為一個客戶和一個服務器)在彼此交換數據之前必須先建立一個TCP連接。因此在一個TCP連接中,僅有兩方進行彼此通信,沒有廣播和多播的概念。TCP某些方式來提供數據傳輸的可靠性。

UDP是一個簡單的面向數據報的傳輸層協議,它只提供不可靠性的數據傳輸服務把:應用程序傳給IP層的數據發送出去,但并不保證它們能到達目的地。這意味著UDP客戶機向指定的遠端主機發送數據報時,并未事先確知對方是做好了接收數據的準備的。因此就會發生某一客戶機發給一個主機,而此主機事先并未把此客戶機列入其目標端口號而加以監聽的情況。TCP的校驗和是必需的,而UDP的校驗和是可選的。當校驗和有差錯時UDP就將數據報丟棄并不產生任何差錯報文。

綜合三種協議,如果通訊強調可靠性,應該使用TCP;如果可靠性要求不高,但實時性要求高時可以應用UDP協議。本文這里應用TCP/IP協議作為通信協議,可以保證很強的可靠性。

3 socket編程

3.1 soket簡介

在Windows 環境下開發網絡應用程序,通常都是使用Microsoft的網絡編程接口,即Windows套接字WindowsSocket( 簡稱Winsock), 它包含在Winsock.dll 中的一組API 中,用于在網絡上傳輸數據和交換信息,編程人員需要熟悉和掌握相關的網絡協議、系統的底層知識以及網絡軟硬件技術,因而Winsock 編程相當復雜。所幸的是, Delphi對WinSock進行了有效的封裝,并不需要直接與Winsock 的API 打交道,只需使用其NMUDP、TClientSocket 和TServerSocket等構件,使得對Winsock 的訪問大大簡化。本文通過利用Delphi的TServerSocket、TClientSocket構件實現了局域網內基于TCP/IP的通信。

抽象地說,Socket 是一種雙向通信接口;實際上,Socket 是一種數據結構,用以創建一條在沒有互聯的進程間發送、接受消息的通道(連接點) 。一對互聯的Socket 提供通信接口,使兩端可以傳輸數據。Socket 屏蔽了底層通信軟件和具體操作系統的差異,使得任何兩臺安裝了TCP 協議軟件和實現了Socket 規范的計算機之間的通信成為可能。Socket 接口是TCP/ IP 網絡最為通用的API,也是在Internet 上進行應用開發最為通用的API。

3.2主要的代碼實現

在程序界面中,使SeverSocket控件和ClientSocket控件。SeverSocket控件是基于TCP/IP協議傳輸的服務器方的控件,它的主要作用是用來監聽其它基于TCP/IP傳輸計算機的連接請求,并在收到連接請求時。建立連接,進行數據傳輸,ClientSocket控件是基于TCP/IP傳輸的客戶方的控件,它的主要作用是監聽TCP/IP傳輸的服務器發出連接請求,在收到服務器的允許連接的響應后,建立連接,并傳輸數據,之所以在窗體中同時創建ServerSocket和ClientSocket控件,是因為應用程序既可作為服務器,又可作為客戶端使用。

1) Serversocket和ClientSocket之間的連接

procedure TForm2.shezhiClick(Sender: TObject);

begin

form1.TcpClient1.Active:=1;

form1.TcpClient1.RemoteHost:=edit1.Text;

form1.TcpClient1.RemotePort:=edit2.Text;

form1.TcpClient1.Active:=true;

form1.TcpServer1.Active:=1;

form1.TcpServer1.LocalHost:=edit3.Text;

form1.TcpServer1.LocalPort:=edit4.Text;

form1.TcpServer1.Active:=true;

form1.Button3.Enabled:=true;

edit1.Text:='192.168.0.220';

edit2.text:='8000';

end;

2) 消息的輸入

procedure TForm3.Button1Click(Sender: TObject);

begin

form1.TcpClient1.RemoteHost:=form2.edit1.Text;

form1.TcpClient1.RemotePort:=form2.edit2.Text;

form1.tcpclient1.Connect;

if form1.tcpclient1.Connected then

begin

form1.tcpclient1.Sendln(edit1.Text);

end;

form1.memo2.Lines.Add(edit1.Text);

edit1.Text:='';

form1.tcpclient1.Disconnect;

close();

end;

3) 服務器端的監聽

procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);

var s:string;

begin

s:=clientsocket.Receiveln;

if s='do you receive?' then shaniu(s);

if s='received' thenform6.ShowModal;

if s<>'' then

memo1.Lines.Add(clientSocket.RemoteHost);

{ while s<>'' do

if s='

' then

memo1.Lines.Add('');

}

memo1.Lines.Add(s);

s:=clientsocket.Receiveln;

end;

4) 斷開鏈接

procedure TForm1.breakClick(Sender: TObject);

begin

if messagedlg('是否斷開連接?',mtinformation,[mbyes,mbNo,mbcancel],0)=mryes

then begin

tcpclient1.Active:=1;

tcpserver1.Active:=1;

button3.Enabled:=1;

end;

end;

4 程序演示

如圖2所示,這是程序運行的主界面。在兩臺計算機各打開一個程序的實例,通過設置好ip和端口以后,就可以進行通信了。通訊可以在廣域網內進行,也可以在局域網內進行,但要保證計算機支持TCP/IP協議,這可以通過設置計算機實現。

5 結束語

通過編程,實現了Delphi下的網絡編程。這極大的增強了對TCP/IP協議的理解,認識了套接字的編程的思想。通過運用Delphi編程,可以使我們認識到Delphi本身就是一個功能十分強大的面向對象開發平臺。本文開發的程序可以用作局域網聊天的工具,或者用于廣域網的通信。可以看出,本文編制的程序代碼簡單,程序占用內存極少,對于數字信息的通信有很大的好處,本文的代碼還可以嵌入高級的應用中來,使得本程序作為其它應用的一部分,有很強的實際意義。

參考文獻:

[1] 黃文蘭.Delphi 語言開發教務管理系統[J].電腦知識與技術,2006,(20).

[2] 向繼文.Delphi 與匯編語言的混合編程[J].吉林大學學報(自然科學版),2006,(3).

[3] 林瑜華.如何在DELPHI 中使用SQL 語言[J].福建電腦,2005,(10).

[4] 嚴麗平.基于Delphi 的C語言詞法分析器的實現[J].科技廣場,2004,(8).

[5] 王忠,遲忠先.Delphi5開發指南[M].北京:電子工業出版社,2000:28-30.

[6] Craig Zacker.TCP/IPAdministration[M].北京:中國水利出版社,1998:620-625.

主站蜘蛛池模板: 亚洲天堂777| 亚洲色欲色欲www在线观看| 国产在线无码av完整版在线观看| 国产精品.com| 97在线免费| 一本一道波多野结衣一区二区| 99青青青精品视频在线| 欧美日韩久久综合| 国产另类视频| 国产美女免费| 波多野结衣一区二区三区88| 波多野结衣中文字幕一区| 日本a∨在线观看| 国产性生大片免费观看性欧美| 特级精品毛片免费观看| 亚洲一级无毛片无码在线免费视频| 亚洲人成亚洲精品| 高清无码手机在线观看| 亚洲制服丝袜第一页| 天天躁夜夜躁狠狠躁图片| 91外围女在线观看| 亚洲综合二区| 久久久精品国产亚洲AV日韩| 国产成人一区免费观看| 狠狠v日韩v欧美v| 中文字幕在线观看日本| 国产黑丝一区| a级毛片毛片免费观看久潮| 中文字幕资源站| 欧美第九页| 欧美日韩另类在线| 国产成人综合网在线观看| 无码AV高清毛片中国一级毛片| 亚洲欧洲国产成人综合不卡| 国产激情在线视频| 日韩人妻精品一区| 国产91视频观看| 日本成人不卡视频| 欧美日韩一区二区三区在线视频| 无码综合天天久久综合网| 狠狠做深爱婷婷久久一区| 欧美日韩专区| 亚洲欧美日韩中文字幕在线| 国产综合在线观看视频| 中文字幕人妻av一区二区| 久久黄色视频影| 婷婷六月激情综合一区| 免费av一区二区三区在线| 91蝌蚪视频在线观看| 亚洲精品不卡午夜精品| 亚洲经典在线中文字幕| 久久国产精品电影| 亚洲色成人www在线观看| 国产91全国探花系列在线播放| 欧美精品xx| 亚洲丝袜第一页| 国产高清不卡视频| 亚洲二三区| 欧美日在线观看| 免费日韩在线视频| 强奷白丝美女在线观看| AV熟女乱| 伦精品一区二区三区视频| 国产主播喷水| 国产成人精品高清不卡在线| 日韩第九页| 国产精品午夜电影| 国产精品乱偷免费视频| 五月婷婷综合网| 亚洲日韩图片专区第1页| 福利视频一区| 色婷婷亚洲十月十月色天| 谁有在线观看日韩亚洲最新视频| 欧美成人怡春院在线激情| 国产另类视频| 在线观看国产精品第一区免费 | 国产精品视频猛进猛出| 久久国产亚洲偷自| 99热在线只有精品| 亚洲天堂区| 久久精品一卡日本电影| 亚洲无码视频喷水|