如何做一个类似 WinPop 的软件?(300分)

  • 主题发起人 主题发起人 klak
  • 开始时间 开始时间
K

klak

Unregistered / Unconfirmed
GUEST, unregistred user!
本人想自己做一个类似 Windows 自身带的局域网广播软件 WinPop 的东东。但是苦于
不知如何下手。更缺少这方面的资料。
要求做出以后,能够与 WinPop 以及 象 LanTalk 这样的软件兼容,也就是它们之间
可以收发消息。
请各位大虾指点一二,最好能有源代码。:)
请把资料或者代码发到我的下面信箱,OK?
zhang.aiqiang@mail.zte.com.cn
多谢先。

 
用socket做吧,clientsocket和Serversocket
Delphi的demo里面有,chart的程序,很类似的,我作过
 
如果单纯只是局域网内的广播,用UDP协议加Socket吧!
如果想和其他软件兼容,那么需要知道对方的消息接口,像QQ、MsgQ的我就是这么做的!
 
因为公司现在都是用 Pop 来协调工作,而且大家所用的软件都不同,例如 LanTalk,
或者就是简单的 WinPop。
而我现在做的东西第一就是要跟其余的软件兼容。
现在我大概已经知道其接口用的是 NetBios。

 
用 Pop 来协调工作! 比较有创意啊。
首先你要知道WinPop,LanTalk的工作原理才行
这样才能接收它们发过来的消息或给它们发送消息。
 
Winpop使用的Mailslot机制,是MS独有的,与底层使用的网络协议无关,有一些限制:
1、Win9X和Win2000混用时发送字节<412字节(具体记不清了)
2、容易造成内存泄漏(这一点可参考MS的文档)
3、Mailslot采用无连接方式,消息传递不可靠(要提高可靠性只能自己处理,比如规定的
时间内要收到“已收到消息”的回复等)
好处:处理简单,允许广播。
如果不是要兼容Winpop的话,我建议采用TCP/IP来实现点对点通讯,当需要广播时,用
UDP/IP来处理,结合起来处理可能可靠性会高一点,也容易扩展的成为Internet可用的
通讯工具。
 
还有一点,WinMe不支持Mailslot机制
 
研究一下微软的MSMQ技术吧,它可以做的比WINPOP更好,它可以存储消息队列
即使接收方关机,开机后还是会现是的
参考MSDN
 
我第一次来这里,要向大家虚心请教啊![:D]
 
怎么没人回答啊。
我可不想让斑竹逼着结束讨论。
不管是用MailSlot还是用NetBios,只要能实现上面的功能就可以。
可否能给我一个例程?
 
看到你的贴子了,有。。。。。300分,我没看错吧
我已经找到了mailbox名称(需要测试一下),过几天就把例子给你
你要的组件已经发过去了,请查收
 
这里有哟,不过你自己要改的!
http://person.zj.cninfo.net/~yhaiyan/technology/vc/vc76.htm
[:D]
 
to jzx:
我已经收到,很不错,多谢!
如果测试出来可以跟系统WinPopup通信的话,记着给我mail一份。
系统的mailbox是不是 “WinPopup”?
to qiya:
多谢你的网址,正是我所需要的。
不知道能不能跟系统的WinPopup兼容,这也正是我所关心的。

 
to qiya:
程序我看过了,还是不能跟系统的WinPopup兼容。
to jzx:
赶快啊,就等着你了,拜托了!

其实用什么都可以实现广播消息的功能,[red]关键的关键是我想跟系统
的WinPopup兼容[/red],也就是说,用户不管用我的软件还是用系统自带的WinPopup,
都可以收发消息。
 
balaschen不是说了吗?windows上的winpopup使用的是mailslot,在msdn中查找mailslot就会查到它的说明和相关函数,使用这些函数就可与winpopup通信了
 
[red]
[h1]:)[/h1]​
[/red]
 
mailslot还有问题吗
 
诸位大侠,请看清楚点。
做一个收发消息的软件,用什么都可以做,包括ServerSocket/ClientSocket、NetBios、
MailSlot以及NamePipe等等。
但是===========请注意=========
我所需要的是要跟系统的WinPopup兼容!!!!!!!!!!
详细一点就是:A机器用我的软件,B机器用系统自带的WinPopup,它们之间能够顺利的
收发消息。
用MailSlot的确可以做,但是它需要知道系统WinPopup的SlotName,否则即便非常清楚
MailSlot的原理以及用法,也是无法使两者之间兼容通信的。现在就是不知道系统
WinPopup的SlotName!!!!!
这一点,jzx 非常清楚,因为他也在做这个东东。呵呵,我的希望也寄托在他身上了。

欢迎大家继续讨论。
 
这个帖子好久没有讨论了,我还是不用斑竹催,自己主动结束好了。
多谢大家的支持。
我总结一下:
如果不需要跟系统WinPopup或者别的软件(例如LanTalk)兼容的话,简单的可以
用Socket,复杂一点的可以用NamePipe或者MailSlot。但是如果想兼容的话,一定得需要
用NetBIOS(可以参考MSDN或者Delphi帮助,或者看NB30.DCU),但这也是最麻烦的一种。
 
为什么不能给自己加分呀????
 
后退
顶部