说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我用TNMUDP做的通信,如何跟外网发送数据,在线等(谢谢)

编辑:说三道四文库 发布时间:2018-01-21 01:12
HTML文档下载 WORD文档下载 PDF文档下载
大家好!
    我的问题如题目,希望哪个好心人能帮我一个,最好说详细点,谢谢啦。
这个组件现在已经没有多少人用了,建议你使用indy
unit UDPDem;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, NMUDP, ExtCtrls;

type
  TForm1 = class(TForm)
    NMUDP1: TNMUDP;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    Button1: TButton;
    Panel1: TPanel;
    Button2: TButton;
    Memo1: TMemo;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure NMUDP1Status(Sender: TComponent; status: String);
    procedure NMUDP1DataSend(Sender: TObject);
    procedure NMUDP1InvalidHost(var handled: Boolean);
    procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
      FromIP: String; Port: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
//--发送数据
procedure TForm1.Button1Click(Sender: TObject);
var
  MyStream: TMemoryStream;
  TmpStr: String;
Begin
  NMUDP1.ReportLevel := Status_Basic;
  NMUDP1.RemoteHost := Edit1.Text;
  NMUDP1.RemotePort := StrToInt(Edit2.Text);
  TmpStr := Edit3.Text;
  MyStream := TMemoryStream.Create;
  try
    MyStream.Write(TmpStr[1], Length(Edit3.Text));
    NMUDP1.SendStream(MyStream);
  finally
    MyStream.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Clear;
end;

procedure TForm1.NMUDP1Status(Sender: TComponent; status: String);
begin
  If StatusBar1 <> nil then
    StatusBar1.SimpleText := status;
end;

procedure TForm1.NMUDP1DataSend(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Data Sent';
end;

procedure TForm1.NMUDP1InvalidHost(var handled: Boolean);
var
  TmpStr: String;
begin
  If InputQuery('Invalid Host!', 'Specify a new host:', TmpStr) then
  Begin
    NMUDP1.RemoteHost := TmpStr;
    Handled := TRUE;
  End;
end;
//--接收数据
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var
  MyStream: TMemoryStream;
  TmpStr: String;
begin
  MyStream := TMemoryStream.Create;
  try
    NMUDP1.ReadStream(MyStream);
    SetLength(TmpStr,NumberBytes);
    MyStream.Read(TmpStr[1],NumberBytes);
    Memo1.Lines.Add(FromIP+': '+TmpStr);
  finally
    MyStream.Free;
  end;
end;  

end.
该回复于2009-03-27 13:26:54被版主删除
indy下有好多例子,不过写这种程序,还是看看API和INDY的源代码比较好。
接分是王道!
Delphi3的DBGrid中的下拉列表和查找字段编程方法 DELPHI常见问题 Delphi的竖排标签 DELPHI构件制作方法 DELPHI控件Tweblabel的编制 BCB 阵营,何去何从? 我问个问题!有关confirm的!看见请急回,在线等! 这个小程序为何不能实现预期功能? jps是什么?哪里有介绍它的网站? 一道用三元组来表示稀疏矩阵问题(用C++描述) 此ADSL猫是否带路由功能? 请教高手.....帮忙看看.....急救.......... 关于xp下SQL server的问题 初学问题????在线等???????????? 中秋节的习俗急! 福建过节日的习俗 急 我要写作文福建过一年要过多少 4,5两题英语 求解英语题目:4、5两题 “合同有效期3年”用英语怎么说? 为什么在亚运会上,香港澳门都是中国香港中国澳门,而 中国台湾为什么叫中华台北 有名的古诗词 有哪些著名的古诗句?七字或五字的 英国王储查尔斯否认说过“当国王像蹲监俄学者:不要对伊核谈判前进步伐抱过高小偷夜闯国务卿克里家车库 美警方调查中欧推动世贸组织在MC9上达成早期收李某某案31号二审开庭 受害人心情未创新农村金融保险服务 支持现代农业快中国大使做客阿根廷华人电视脱口秀新疆皮山县村民勇斗3名暴恐分子天津一小区电梯频困人 居民盼物业公司谈天气说预报 气象先生宋英杰海峡论坛金蝉变妙手医师仙界缥缈诺美娜少女战队至尊九阳漳平旅游得荣旅游芷江旅游滩头旅游宜州旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘