在局域网中如何将一条消息发送到一个或多个指定用户,对方收到后自动返回接收成功信息(200分)

简单的办法, 在服务器上做一个程序, 里面放 SERVER SOCKET
各 普通 CLIENT 的程序里放一个CLIENT SOCKET
你可以在 CLIENT SOCKET连接后,生成一个CLIENT 的标识号和用户名的对照表
(比如说用结构数组记录), CLIENT发送消息时指定用户名字发送给SERVER SOCKET
然后SERVER SOCKET根据发来的消息找到另一个接受端CLIENT ,将消息传给它就是
了,SERVER SOCKET和CLIENT SOCKET的使用方法可以看DELPHI 的 DEMO



 
用邮件槽(mail slot)最方便,可以发广播消息,就像写文件一样。
<a href="ftp://202.120.100.49/vcl/new/mdmlslot.zip">这里</a>
有mailslot的Delphi控件,使用很简单。
 
sxb, 您这是个 PUSH 的概念。
我处理这类问题的方式,常常倒过来,让客户自己去 PULL.
具体做法是:在服务器上建个通讯表,记录 From To CC 之类,
各个客户上来,自己取自己的东西,填个字段,以表示接受过。

我一直希望有人指正我这种思路。
 
用NetBios 或者用AppLink都很方便
 
Hehe, yysun,
您这种方法的缺点是消息的传送不及时.
而Server Push的方法是类似事件驱动的方式, 效率较高,
可以及时相应消息

而且据我理解, sxd的要求是所谓对等网络, 也即每个机器都可以
是客户或者服务器, 如果用您的查询的方法, 客户就要累死了,
如果每台机器都向别的机器询问的话, 网上的无用数据包太多
 
如果在同一网段,我到是做了一下尝试
用的是delphi 4 /demo/udp例子
由于初次编程,还不能搞清如何用tcp/ip协议
大体也是在用户机装上server
服务器装上client
自定义了响应,比如接收到'1;c:/windows/notepad.exe'就去执行notepad
'0;'就返回应答,client端收到后把返回的主机ip/用户名加入listview

我想借此问一下如何能使用tcp/ip协议
我想50-100分差不多够了吧。
 
建议使用广播的方法。
例如,使用UDP协议,将接受方的IP地址写成255.255.255.255
并设置Socket的属性为广播 。就可以发送了。
如果不想广播,用MultiCast,Socket的设置麻烦一些,
具体的设法请参阅有关资料。

 
接受答案了.
 
如何判断我的工作站是否在局域网上,(随时判断,如断线立即提示)
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
989
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部