日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Delphi中關(guān)于NMUDP控件的用法(原創(chuàng))

 jojo1981 2006-08-24

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)試通過。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多