小弟为这个问题郁闷阿。我想用udpserver ,udpclient做一个局域网发信息的东西,遇到如下问题:
服务器用这语句发出广播:udpserver.broadcase('hello world!',9394);
客户端用这语句接受广播:udpclient.ReceiveString(100);
或者:udpserver.ReceiveString(100);
上面的语句读不出广播的消息。
请问是什么回事啊,应该怎样才能读出"hello world"阿。
服务器用这语句发出广播:udpserver.broadcase('hello world!',9394);
客户端用这语句接受广播:udpclient.ReceiveString(100);
或者:udpserver.ReceiveString(100);
上面的语句读不出广播的消息。
请问是什么回事啊,应该怎样才能读出"hello world"阿。
解决方案 »
- 关于windows API 如何调用的菜鸟问题
- 使用canvas得在接口的uses中加什么类还是程序出错?
- 寻找大牛
- 请教高手关于数据库锁定的问题
- 关于sql语言的问题,在线等,江湖告急
- Delphi编的客户端怎样与JAVA服务端联系?
- 简历式报表如何实现?用quickreport或fastreport可以吗?
- dbgrid的问题,增加一个列专门显示当前的记录序号!自动更新。
- 如何实现我的程序在ctri+del+alt 中看不见?????高分哈??
- delphi为PB编写的DLL调用出错!高手请进!急!
- 找不到文件“c:\progra~1\ms\??.exe”(或他的组件之一)
- 菜鸟女:如何将integer数组的值用动态adoquery的SQL insert语句插入数据库?????????
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdUDPClient, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPServer,IdSocketHandle, Spin;type
TForm1 = class(TForm)
udps: TIdUDPServer;
UdpC: TIdUDPClient;
Button1: TButton;
Edit1: TEdit;
UDPMemo: TMemo;
ip: TEdit;
Label1: TLabel;
port: TSpinEdit;
Label2: TLabel;
procedure udpsUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.udpsUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
DataStringStream: TStringStream;
s: String;
begin
DataStringStream := TStringStream.Create('');
try
DataStringStream.CopyFrom(AData, AData.Size);
UDPMemo.Lines.Add('Received "' + DataStringStream.DataString + '" from ' + ABinding.PeerIP + ' on port ' + IntToStr(ABinding.PeerPort));
s := 'Replied from ' + udps.LocalName + ' to "' + DataStringStream.DataString + '"';
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
finally
DataStringStream.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
udpc.Send(ip.Text,port.Value,edit1.Text);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
udps.DefaultPort:=2333 ;
udps.Active:=true;
end;end.