rt

解决方案 »

  1.   

    "C:\Program Files\Borland\Delphi6\Demos\Internet\Chat"
      

  2.   

    http://expert.csdn.net/Expert/topic/1905/1905156.xml?temp=.2795221请教疑问:
    现有一聊天程序,局域网内任何机器登录,就会在所有用户的在线列表里添加,请问他是怎么实现的?
    这个程序登录时没有提示要输入服务器IP,也不需要指定端口号,就直接登录到聊天界面了.看上去像是不需要服务器的.也没有数据库.
    方案1.遍历网段内所有IP的默认端口,获取已登录此聊天程序的用户列表,逐个发送消息,通知:我登录啦.然后打开自己的端口,把在线用户添加到自己的在线列表中.
    方案2.类似于net send * msg之类的原理,向网段内所有IP广播一条消息:我登录啦.如果收到回应,就确定在线.我对协议,网络没什么概念,我不知道我在说些什么.但我想了解这个程序工作的浅显的原理.登录过程序消息是怎么传递的,希望有高人指点一二.
    方案一,方案二估计都不是什么切实可地的方案.:)
    我知道他用winsock实现,用到udp协议.
    我在192.168.0.XXX网段测试的.
    再问:udp是不是只能在局域网内广播消息?我还测试过:第一个登录者退出后,第二个第三个还是可以继续正常的聊天通讯的.