Delphi中關(guān)于NMUDP控件的用法(原創(chuàng)) likl Delphi (2001-07-19 16:26:53)
在DELPHI中有一控件NMUDP,下面我們?nèi)チ私膺@一控件的具體用法。
首先,在DELPHI中創(chuàng)建一新的application,我們在From中加入: Memo1: TMemo Memo2: Tmemo Button1: TButton NMUDP1: TNMUDP 其中:Memo1是接受數(shù)據(jù)顯示框 Memo2是NMUDP狀態(tài)顯示框 Button1是用于發(fā)送數(shù)據(jù)按鈕 NMUDP1是client和server用于發(fā)送和接受數(shù)據(jù)控件 程序代碼如下: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, NMUDP; type TForm1 = class(TForm) NMUDP1: TNMUDP; Button1: TButton; Memo2: TMemo; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure NMUDP1BufferInvalid(var handled: Boolean; var Buff: array of Char; var length: Integer); procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); procedure NMUDP1DataSend(Sender: TObject); procedure NMUDP1Status(Sender: TComponent; status: String); procedure NMUDP1InvalidHost(var handled: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var C: Array [1..3] of Char; begin C := ‘cat‘; NMUDP1.RemoteHost := ‘127.0.0.1‘; NMUDP1.ReportLevel := Status_Basic; NMUDP1.LocalPort := 6668; NMUDP1.RemotePort := 6668; NMUDP1.SendBuffer(C, 3); end; procedure TForm1.NMUDP1BufferInvalid(var handled: Boolean; var Buff: array of Char; var length: Integer); begin ShowMessage(‘Buffer Invalid: Buffer contains no data‘); end; procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); var C: array [1..3] of Char; I: Integer; begin if NumberBytes <= 3 then begin NMUDP1.ReadBuffer(C, I); Memo1.Lines.Add(C+‘: received ‘+IntToStr(I)+‘ bytes from ‘+FromIP+‘ on port ‘+IntToStr(Port)); end else Memo1.Lines.Add(IntToStr(I)+‘ bytes incoming, buffer too small‘); end; procedure TForm1.NMUDP1DataSend(Sender: TObject); begin Memo2.Lines.Add(‘Data sent‘); end; procedure TForm1.NMUDP1Status(Sender: TComponent; status: String); begin Memo2.Lines.Add(status); end; procedure TForm1.NMUDP1InvalidHost(var handled: Boolean); var S: String; begin S := NMUDP1.RemoteHost; if InputQuery(‘Invalid host‘, ‘Specify valid hostname: ‘, S) then begin NMUDP1.RemoteHost := S; handled := TRUE; end; end; end. 本程序在Windows98+Delphi5調(diào)試通過。 |
|