怎么样处理网络上的包.(100分)

  • 主题发起人 主题发起人 Babyfloppy
  • 开始时间 开始时间
B

Babyfloppy

Unregistered / Unconfirmed
GUEST, unregistred user!
有个问题,就是Delphi中,当接到网络上的包时,怎么样使程序暂停运行,
去处理来包.是不是要采用消息机制,就是当包来时,就向程序发出一个消息,
然后由程序去处理消息?我目前是在一个线程中监听端口,有包来就在这个
线程中处理,可是总觉得不好,是不是最好用消息的方法?望赐教.
 
你用的是阻塞方式?
 
不是阻塞方式
 
那就用delphi自己的事件处理就足够了
 
我要实现的功能是在发出一个请求包后,就继续做别的事情,之后
如果有应答包回来,就去处理应答包,顺便再问一个问题,如果一段时间内没有
应答包回来,我怎么来提示用户请求失败呢?
 
创建个timer判断是否超时。

另外,你写控件的事件就可以了,它也是接到消息才触发的事件
 
1.如果有应答包回来,会有OnRead事件发生.

2.自己计时吧!

 
可以试验一下如下代码,这是同步方式
//先发包,

sendbag;
//等待
while not receiveok do
begin
application.processmessages;//没有这句话就死循环了.
end;
//做接收到包后的工作
....
如果是用异步方式,写在线程里是不错的主意.
 
多人接受答案了。
 
后退
顶部