TUDPSocket的使用问题(100分)

  • 主题发起人 主题发起人 蛮牛野蛮牛
  • 开始时间 开始时间

蛮牛野蛮牛

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]

请问谁知道为什么tudpsocket的onrecieve事件怎么触发?

我怎么也没办法触发它???
 
只有收到内容的时候才触发,所以可以通过另一个程序给它发内容

-----
http://www.8421.org
 
哦!我当然是发送了数据的。
呵呵。我有另外一个TUDPSOCKET给它发呢!
 
你指定的帮定端口号和IP对不对呀?
 
lacalhost:=myhostip
localport:=5555;
remotehost:=remoteip
remoteport:=3333;

然后另一个TUDPSOCKER向5555和myhostip发数据。
 
有人给个答案三!急死了![:(][:(][:(]
 
你先看看delphi的例子,在例子基础上改,你应该没有错。
 
//remotehost:=remoteip
//remoteport:=3333;
去掉这两行如何?
 
TSocketBlockMode = (bmBlocking, bmNonBlocking);
你改为bmNonBlocking就好了,就可以用onrecieve事件来收发数据了
 
object UdpSocket1: TUdpSocket
Active = True
BlockMode = bmNonBlocking
LocalHost = '127.0.0.1'
LocalPort = '2020'
RemoteHost = '127.0.0.1'
RemotePort = '2030'
OnReceive = UdpSocket1Receive
Left = 304
Top = 120
end
object UdpSocket2: TUdpSocket
Active = True
BlockMode = bmNonBlocking
LocalHost = '127.0.0.1'
LocalPort = '2030'
RemoteHost = '127.0.0.1'
RemotePort = '2020'
OnReceive = UdpSocket2Receive
Left = 384
Top = 128
end

procedure TForm1.Button1Click(Sender: TObject);
begin
UdpSocket1.Sendln('aaa!');
end;

procedure TForm1.UdpSocket1Receive(Sender: TObject; Buf: PChar;
var DataLen: Integer);
begin
ShowMessage(Buf);
end;

procedure TForm1.UdpSocket2Receive(Sender: TObject; Buf: PChar;
var DataLen: Integer);
begin
ShowMessage(Buf);
end;

//remotehost:=remoteip
//remoteport:=3333;
去掉这个是不行的,不可能没要发送地址和端口。上面是我写代码,错在什么地方?

张大侠是否有例子,给个例子好吗? manniuyemanniu@163.com,manniuyemanniu@sina.com
manniuyemanniu@sohu.com

我确实没看见例子....,我到看见了INDY的例子和NMUDP的例子,而且已经可以用了,但是
这个不能用,心里老不舒服,源代码也看了看,不过没看的怎么清楚。哈哈。
你先看看delphi的例子,在例子基础上改,你应该没有错。
 
DELPHI6确实有DEMO的, 我找到发给你了
 
无忌兄:你提供的是一个TCPCLIENT呀!唉,我要的是TUDPSOCKET的,一样用吗?
 
我找错了,不过我可以帮你写一个DEMO,一会就发
 
[:(][:(][:(][:(]
张大侠,可以了吗?
 
我测试了,一会,也无法触发这是事件,我再找找VCL代码
 
呵呵!我都快放弃了!为什么呢?
 
我用ICS的控件,很不错,支持SOCK代理
 
其实INDY的就支持这些。唉,我主要想问为什么?好吧,我会送分了。
 
多人接受答案了。
 
后退
顶部