有谁知道怎样实现象WinPopup那样在局域网内部传递信息的方法?(100分)

  • 主题发起人 reedblue
  • 开始时间
R

reedblue

Unregistered / Unconfirmed
GUEST, unregistred user!
有那位大侠知道怎样实现象WinPopup那样在局域网内部传递信息的方法?如果
有Demo程序更好,我的感激之情如长江之水汹涌而不绝......
并奉送100分。
 
去深度历险下载一个mailslot控件,一切都搞定了,很简单的.
 
mailslot? 没用过, 干什么用的?
其实所有内部传递消息用的都是socket构件, 侦听一个port, 如果onsocketevent
里的socketevent=seRead时, 就显示出来.
 
to cytown: 啊呀! 怎么...怎么....怎么?????
cytown不知道mailslot?????????? 和我开玩笑吧?
winpopup用的不是tcp/ip,而是mailslot.
mailslot类似于named pipe....

哎!几句话也说不清楚,看看delphi带的win32 SDK help,关键字"mailslot",
建议参照pipe学习.
 
呵呵, 真的不知道:-(
看了看, 是要用一台机器做mailslot office, 然后所有机器从这台机器读, 还是
每台机器建一个, 而往特定机器上发呢? (虚心求教)
 
请先到深度历险下载mailslot,这是一个控件,然后到我的主页
http://shrw.chn.net去下载例子程序和可执行文件。今天刚传上去的。
把分全给我吧!
 
要学的东西真多,我得努力向前
 
用createfile在自己的机器上建一个虚拟文件,位置在//./<font color=red>mailslot</font>/filename,
当别人需要给你发信息时,可以writefile写你的这个文件,比如你的机器名叫
cAkk(用户名也可以),那么他可以写这个文件:
//<font color=red>cakk</font>/mailslot/filename (当然,他需要知道filename)
而你会及时得到一个消息,得到消息后,你可以readfile读取信息.
如果要给一个工作组所有人发信息,用工作组的名字代替你的机器名,同理,如果
要广播消息,用<font color=red>*</font>代替机器名字.

mailslot是window下非常重要的一种IPC(interprocess communications进程内
通讯)机制,你可能会想到:如果我给每台机器都装一个小程序,他们通过一个统一的
文件名(当然是在每台机器上)来互相访问,岂不是可以很方便的通讯?
对,这就是winopopup. malislot的典型应用就是winpopup, 他的原理是每台机器
一启动winpopup,就在自己机器上建立了一个mailslot,名字是
<font color=red>//./mailslot/messngr</font>,注意每台机器建立的mailslot的名字都是一样的,大家通过
这个名字来传递消息.

pipe的原理有些类似....就不再多说了.

IPC是个挺好玩的东西,学学很有意思.他的缺点是不能保证消息的送达. :)
 
Delphi本身就有一个这样的例子在
Delphi4/Demos/Internet/Msg 下
 
多人接受答案了。
 

Similar threads

回复
0
查看
827
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部