作一个局域网的聊天软件(注意没有服务器),程序怎么列出在线人员列表呢?在线等待,解决立刻结账!

sunmingdong 2002-09-13 01:54:56
如题,

就象“鸿业网话”或者“netmeeting”一样,在没有服务器的情况下,列出在线人员列表

最好有例子
...全文
190 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmingdong 2002-09-16
  • 打赏
  • 举报
回复
谢谢各位,我这两天没来单位,也就没上网,

我基本上知道要用udp和广播的,

但具体不知道该怎么作,所以来问的,

我再去试试,如果行的话,立刻给分
iamleejun 2002-09-16
  • 打赏
  • 举报
回复
make a mark
lingbin 2002-09-15
  • 打赏
  • 举报
回复
对UDP可以广播的。
wyb_Ultra 2002-09-15
  • 打赏
  • 举报
回复
你先动手做一做,基本上没有大问题,只要一个NMUDP就可以了。
NowCan 2002-09-15
  • 打赏
  • 举报
回复
http://vip.6to23.com/NowCan1/tech/udp.htm
这个程序很老,但是原理还是可行的。
「已注销」 2002-09-14
  • 打赏
  • 举报
回复

昨天刚讨论是用主从表还是单表

你的问题就是想省掉主表

这样不方便数据的管理

导致设计起来复杂

除非你想写成P2P模式的

每个client 又当c 又当s

@_@
chinagy 2002-09-14
  • 打赏
  • 举报
回复
1.我认为用UDP可以;
2.最好将程序做成即可以是服务器,又可以是客户机方式.第一次启运时,上网上查找服务器,如果服务器没有找到,则本机做服务器,等待别人登陆,如果找到服务器,则在服务器上注册并取回在线人员.如果工作中服务器关闭,重复则每一个发现服务关闭的客户机改为服务器,并根据在线人员列表向其它人员发服务消息.
3.如果不设一个虚拟服务器,每人都在网上发消息对网络会有很大影响.
child_bj 2002-09-14
  • 打赏
  • 举报
回复
我刚做完你说的那个功能

就是用UDP完成的。不过是用的VB,向xxx.xxx.255.255发UDP消息就是广播了。它广播的内容是自己的IP,然后接受到的机器回一个自己的IP。

没有问题。UDP是无连接协议,根本不会很浪费资源。
大大怪老张 2002-09-14
  • 打赏
  • 举报
回复
用一个upd控件就可以搞定了.
whitelion 2002-09-14
  • 打赏
  • 举报
回复
以前见过一个局域网聊天的例子
看过,其使用的控件是UDP
具体如何实现,不知道
bacer 2002-09-14
  • 打赏
  • 举报
回复
udp广播没有那么消耗资源吧
超级结巴里面的局域网广播就是一个例子,不过它发送的数据量比较大
sunmingdong 2002-09-13
  • 打赏
  • 举报
回复
to: jianlinlong(楚 潇)

急需一个例子,TIdUdpClient我找到了,但我的CBuilder没有帮助
jianlinlong 2002-09-13
  • 打赏
  • 举报
回复
广播还是用UDP,TIdUdpClient提供了这样的方法
sunmingdong 2002-09-13
  • 打赏
  • 举报
回复
有没有这样的文章啊?
woainihaha 2002-09-13
  • 打赏
  • 举报
回复
对了,忘了一点,就是连接和段开都要触发发送最新地址列表,不要采用广播形式,多播要好一些!
woainihaha 2002-09-13
  • 打赏
  • 举报
回复
我觉得最好的做法是:
在每次有新的机器连接近来的的时候,把自己的地址列表刷新并发送到对方的机器就可以了!这样新的机器一旦进入网络就能获得所有的地址,只需要过滤掉自己的地址就行了!同样的有机器连接到自己的机器的时候,刷新地址列表,并将地址列表发送到所有的连接机器!

最关键的一点是有机器连接的时候触发发送地址列表的消息,可以节省资源!
hyhong_h 2002-09-13
  • 打赏
  • 举报
回复
用广播太费网络资源了,用多播要好一点。
gangAndgang 2002-09-13
  • 打赏
  • 举报
回复
可以这样吧:
1.在程序开始运行时就发广播,以获得所有已在线用户的列表
2.每隔一定时间再广播一次,以更新列表

这个办法可能有点浪费资源,但是比较简单,也比较有效
Hawk_sun 2002-09-13
  • 打赏
  • 举报
回复
其实这里用广播包并不好,如果大家都广播的话那就不太好了,我觉得你还是效仿 net Send或者WinPop的做法,只针对IP收发,就是你的聊天程序做成一个服务,只要计算机启动了这个服务也启动,收到任何消息就显示出来,并且自动回一个已经接受的消息通知发送方,这样你只需要知道哪台计算机开机就行了,这个又是很简单的,不需要知道谁在线谁不在线!如果你向一个不在线的机器发送一个的话由于对方收不到因也就不会给你接受应答,这样只要在发送方设置一个TimeOut
gfh21cn 2002-09-13
  • 打赏
  • 举报
回复
具体的例子
CB就自己带了个


在D:\Program Files\Borland\CBuilder5\Examples\Internet\Chat下
你先看看
加载更多回复(9)

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧