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.

主站蜘蛛池模板: 国产一区二区在线视频观看| 国产在线八区| 免费人成黄页在线观看国产| 91无码人妻精品一区| 三上悠亚精品二区在线观看| 国产精品久久久久久久久kt| 欧美精品v| 一本大道视频精品人妻| 国产成人1024精品下载| 欧美性久久久久| 又黄又湿又爽的视频| 欧美在线黄| 无码免费试看| 亚洲精品你懂的| 国产成人精品第一区二区| 国产第一色| 黄色网站不卡无码| 99视频在线免费看| 国语少妇高潮| 亚洲 欧美 中文 AⅤ在线视频| 九色视频线上播放| 国产精品lululu在线观看| 国产精品微拍| 久久成人国产精品免费软件| 欧美精品影院| 欧美日韩高清| 伊人久久大香线蕉aⅴ色| 人禽伦免费交视频网页播放| 国产日本欧美在线观看| 香蕉视频在线精品| 久久特级毛片| 国产日产欧美精品| 欧美午夜网| 国产va在线| 国产亚洲欧美日韩在线一区| 婷婷色丁香综合激情| 日本91在线| 国产欧美日韩视频怡春院| 中文字幕精品一区二区三区视频 | 伊人久久福利中文字幕| 国内精品一区二区在线观看| 狠狠色综合网| 91外围女在线观看| 久久免费观看视频| 亚洲综合色婷婷| 国产青青操| 久久这里只有精品66| 久久国产精品电影| 国产91小视频在线观看| 亚洲精品第五页| 蜜芽一区二区国产精品| 国产亚洲精品无码专| 免费观看欧美性一级| 91色在线视频| 亚洲第一极品精品无码| 四虎永久免费地址在线网站| 99尹人香蕉国产免费天天拍| 为你提供最新久久精品久久综合| 久久人体视频| 中国精品久久| 视频国产精品丝袜第一页| 国产微拍精品| 亚洲热线99精品视频| 婷婷亚洲视频| 日韩无码黄色网站| 国产高清免费午夜在线视频| 亚洲美女一级毛片| 日韩大乳视频中文字幕| 91久久天天躁狠狠躁夜夜| 国产sm重味一区二区三区 | 五月婷婷丁香综合| 无码aaa视频| 亚洲熟妇AV日韩熟妇在线| 制服丝袜无码每日更新| 国产91线观看| 97se亚洲综合在线天天| 国产精品 欧美激情 在线播放| 欧美日本在线观看| 国产美女精品在线| 国产农村精品一级毛片视频| 91久久夜色精品| 国产AV无码专区亚洲A∨毛片|