现在需要用写一个接收UDP包的服务端.用TUdpSocket以后老是接收不到数据,是因为什么啊?请指教一下.或者用别的什么也可以
解决方案 »
- 打开某个exe应用程序,怎么点击里面的控件 ?
- Delphi 7 中怎么没有了Socket控件,谁知道哪里有,怎么加?
- 哪里有Delphi7.1下载????
- 如何将image中图片保存为jpg然后Timage可以读取
- 请问什么情况下会出现'Bitmap image is not valid'的错误?
- 推荐一个超好的bt下载计算机讲座,认证培训资料,学习软件,和英语讲座考研讲座等等好东西大家快来下啊
- 控件的handle 和 用getdc(handle) 获得的名柄有什么区别??????????????
- 请问ehlib控件包中printDbgridEh怎样设置横向打印?
- 请问怎样才能获得当前网络的传输速率?
- 见鬼!在MDI中用TRichEdit.FindText出现问题???
- 用indy做的邮件软件可以发给sina.com吗?如果可以怎么做的
- 结婚散分~~~~~~~~~~~
2.检查一下你的UDP发送端,是否正确地发送数据;像网络传输的调试,都要双向检查的,一边检查完,便排除,再检查另一边
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,IdSocketHandle,
IdAntiFreezeBase, IdAntiFreeze, Gauges, StdCtrls, IdUDPClient;type
TForm_UDP = class(TForm)
IdUDPServer1: TIdUDPServer;
grp1: TGroupBox;
grp2: TGroupBox;
mmo1: TMemo;
edt1: TEdit;
lbl1: TLabel;
btn1: TButton;
IdUDPClient1: TIdUDPClient;
Label1: TLabel;
Label2: TLabel;
lbl2: TLabel;
edt4: TEdit;
Button1: TButton;
edt2: TEdit;
edt3: TEdit;
edt5: TEdit;
lbl3: TLabel;
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;ABinding: TIdSocketHandle);
procedure btn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form_UDP: TForm_UDP;implementation{$R *.dfm}procedure TForm_UDP.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var
Str:String;
begin
AData.Seek(0,0);
SetLength(Str,AData.Size);
AData.Read(Str[1],AData.Size);
mmo1.Lines.Add(str);
str:= 'message has received';
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort,Str[1] , Length(Str));
end;procedure TForm_UDP.btn1Click(Sender: TObject);
begin
IdUDPServer1.DefaultPort:=StrToInt(edt1.Text);
IdUDPServer1.Active:=True;
end;procedure TForm_UDP.Button1Click(Sender: TObject);
Var
ReceivedString:String;
begin
IdUDPClient1.Host:=edt2.Text;
IdUDPClient1.Port:=StrToInt(edt3.Text);
IdUDPClient1.Active:=True;
IdUDPClient1.Send(edt4.text);
ReceivedString := IdUDPClient1.ReceiveString();
edt5.Text:=ReceivedString;
end;end.