Delphi中關(guān)于NMUDP控件的用法(原創(chuàng))
likl
Delphi (2001-07-19 16:26:53)
在DELPHI中有一控件NMUDP,下面我們?nèi)チ私膺@一控件的具體用法。
首先,在DELPHI中創(chuàng)建一新的application,我們?cè)贔rom中加入:
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)試通過。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。