里面的关于udp包传送程序有问题,请指教

flyskyboy 2001-04-27 02:52:00
我是一个初学Delphi的,知道Delphi功能强大,但下边的udp包传送有问题,编译通过,单不能传送。请高手指教。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Psock, NMSTRM;

type
TForm1 = class(TForm)
NMStrm1: TNMStrm;
NMStrmServ1: TNMStrmServ;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
ProgressBar1: TProgressBar;
procedure NMStrm1Connect(Sender: TObject);
procedure NMStrm1Disconnect(Sender: TObject);
procedure NMStrm1MessageSent(Sender: TObject);
procedure NMStrm1PacketSent(Sender: TObject);
procedure NMStrm1Status(Sender: TComponent; Status: String);
procedure NMStrmServ1ClientContact(Sender: TObject);
procedure NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.NMStrm1Connect(Sender: TObject);
begin
statusbar1.Panels[0].Text :='正在连接';
end;

procedure TForm1.NMStrm1Disconnect(Sender: TObject);
begin
if statusbar1.Panels<>nil then
statusbar1.panels[0].text:='断开!';
end;

procedure TForm1.NMStrm1MessageSent(Sender: TObject);
begin
if statusbar1.Panels <>nil then
statusbar1.panels[0].text:='发送完毕!'
end;

procedure TForm1.NMStrm1PacketSent(Sender: TObject);
begin
progressbar1.Max :=nmstrm1.BytesTotal;
progressbar1.Min:=0;
progressbar1.Position :=nmstrm1.BytesSent;
end;

procedure TForm1.NMStrm1Status(Sender: TComponent; Status: String);
begin
if statusbar1<>nil then
statusbar1.Panels[0].Text :=nmstrm1.Status;
end;

procedure TForm1.NMStrmServ1ClientContact(Sender: TObject);
begin
NMStrmServ1.ReportLevel := Status_Basic;
NMStrmServ1.TimeOut := 90000;
StatusBar1.panels[0].text := '正在连接';
end;

procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
var
MyFStream: TFileStream;
begin
if statusbar1.Panels <>nil then
statusbar1.panels[0].text:='收到来自于'+copy(sfrom,0,length(sfrom)-3)+'的一个文件!';
MyFStream := TFileStream.Create('.\tmp', fmCreate);
try
MyFStream.CopyFrom(strm, strm.size);
finally
MYFStream.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
filename:string;
fstrstrm:tfilestream;

begin
if opendialog1.Execute then
begin
filename:=opendialog1.FileName;
fstrstrm:=tfilestream.Create(filename,fmopenread);
nmstrm1.Host :=edit1.text;
try
nmstrm1.PostIt(fstrstrm);
finally
nmstrm1.Free;
end;
end;
end;
end.

...全文
39 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyskyboy 2001-04-27
  • 打赏
  • 举报
回复
care
flyskyboy 2001-04-27
  • 打赏
  • 举报
回复
给分了!!!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧