关于UDP传输 ( 积分: 100 )

  • 主题发起人 主题发起人 diff
  • 开始时间 开始时间
D

diff

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用TidUDpClient 和T IDUDPSERVER控件的进行UDP传输, 我发现这两个控件在98操作系统下不传输 测试源码如下:
发送端放了一个Edit1 一个button 一个IdUDPClient1控件
button下代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Broadcast(edit1.Text,1923);
end;

接受端 放了一个MEmo 一个IdUDPServer1控件
代码如下
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var Rec:Tstringstream;
a:string;
begin
Rec:=Tstringstream.Create('');
Rec.CopyFrom(Adata,0);
a:=Rec.DataString;
memo1.Lines.Add(a);
end;

我觉得代码应该没问题,只是没有设置两个控件的host属性 将port属性都设成1923 对不对啊?为什么在2000上可以传输 在98上不行啊???
是不是这两个控件的问题?如果是该怎么解决啊?大侠们 兄弟大恩不言谢啦!!!

症状:
还有做测验的98机器访问不了2000操作系统的机器,报错没有权限
两个小程序同时装在2000上传输没问题 装在98上就用不了
[?]
 
我使用TidUDpClient 和T IDUDPSERVER控件的进行UDP传输, 我发现这两个控件在98操作系统下不传输 测试源码如下:
发送端放了一个Edit1 一个button 一个IdUDPClient1控件
button下代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Broadcast(edit1.Text,1923);
end;

接受端 放了一个MEmo 一个IdUDPServer1控件
代码如下
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Var Rec:Tstringstream;
a:string;
begin
Rec:=Tstringstream.Create('');
Rec.CopyFrom(Adata,0);
a:=Rec.DataString;
memo1.Lines.Add(a);
end;

我觉得代码应该没问题,只是没有设置两个控件的host属性 将port属性都设成1923 对不对啊?为什么在2000上可以传输 在98上不行啊???
是不是这两个控件的问题?如果是该怎么解决啊?大侠们 兄弟大恩不言谢啦!!!

症状:
还有做测验的98机器访问不了2000操作系统的机器,报错没有权限
两个小程序同时装在2000上传输没问题 装在98上就用不了
[?]
 
你改一下端口,1024以上最好,因为1024以下的容易和系统内部使用造成冲突;也许你的98电脑上的1923端口被其他程序占用了,也有可能的。TidUDpClient 和T IDUDPServer控件没有TNMUDP好用,介意你用TNMUDP!
 
现在delphi7以上的版本好象没有TNMUP组件了,不知道你有没有 Use IdSocketHandle
 
各位大俠,教我怎麼用啊!
 
加 /0 做尾看;
 
TidUDpClient 和TIDUDPSERVER这两个没用过,我可以给你TNMUDP方面的代码...,另外,你在网上应该能找到TidUDpClient 和T IDUDPSERVER的用法的...
 
谢谢 fancy100大哥
我也遇到了一个关于
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
的问题,编译时警告 TIdSockethandle 没有声明,加上 use IdSocketHandle 后
就解决问题了
 
不是端口冲突吗?应该不会有这种问题啊。
 
在win98用的是socket1
在2000用的是2的原因吧
 
小猪兄,你说的Socket1 和 2 是什么意思啊?
 
socket还有什么1和2的区别么?只知道串口有1,2,3.......N
 
Dongy_143兄,能给我关于TNMUDP方面的代码吗?我的邮箱是DIFF2008◎21cn.com 方便的话发给我啦,谢谢!
 
已经发到DIFF2008◎21cn.com信箱,请查收
 
没收到啊,要不换个邮箱suck2008@tom.com试试 再次感谢啊!
 
socket版本的不同
2比1多了好多的函数
有些98是1的
如果这样有可能出错的
 
我首先搞不懂为什么有人会用“TidUDpClient”,其次搞不懂为什么有人说“TNMUDP好用”~
 
楼上的,你说说,为什么你不用TidUDPClient和你认为TNMUDP为什么不好用的原因呢?
即使你说的对,你也要说出原因啊!在这里说一句话就跑了,你什么意思?
 
TIdUDPClient组件存在不少缺陷,比如无法指定本地客户端端口,无法获得自动分配的端口等等
貌似ics控件组比较不错
ps 都什么年代了楼主还在考虑win98么?win9x都有严重的内存泄漏问题,微软都抛弃了,楼主也不必再……[8D]
 
用98是因为要考虑到程序再各种操作系统都可以使用的原因。这个软件不一定就在我机子上用啊。
现在问题是,我做的客户端(TIDUDPSERVER) 和 服务端(TIdUDPClient) 两个程序 我把他们考再2000上,同时在一台机子上运行,传输没问题,考在98上,同时运行 客户端就收不到发送的数据啊!
为什么???给个理由?
 
后退
顶部