【问题标题】:Chat server and client implementation? [closed]聊天服务器和客户端实现? [关闭]
【发布时间】:2014-01-18 23:09:42
【问题描述】:

我一直渴望用 C 和 Winsock 实现一个聊天服务器很长一段时间,但我没有花时间。部分原因是我仍然不确定一些关于在 Windows 操作系统上构建服务器以用于聊天之类的概念性想法。

以下是我一直在思考的一些问题:

  • 用户 x 如何通过通用 LAN 连接到我的服务器 无需我依赖他们输入网络地址(例如地址 可能是无效的,重定向到不同的服务器等)

  • 如果我使用广播来解决上述问题,那对于聊天是否足够可靠?

  • 由于数据包将在每台机器上被强制处理,并且如果有足够多的人加入,可能会占用大量带宽,因此是否会潜在地 DDos 局域网?

  • 多播和广播有什么区别?多播真的优越吗?

根据请求,我对可靠性的定义是我可以在发送的数据包中一致地获取大部分数据。换句话说,我不介意一些丢包,但我确实介意数据在此过程中是否会变得非常混乱。

目前,我的问题多于答案,但我的主要观点是:

在 C 和 Winsock 中通过 LAN 实现聊天的最安全和最可靠的方法是什么?

【问题讨论】:

    标签: c sockets networking winsock lan


    【解决方案1】:
    How will user x connect to my server over a generic LAN without me relying 
    on them to type in a network address( e.g. address could be
    invalid, redirected to a different server, etc. )
    

    使用已知服务器的封闭列表,或使用一些基于广播的自动发现系统。

    If I use broadcasting to solve the above problem, will that be reliable 
    enough for chat?
    

    定义您对可靠性的要求。

    由于数据包将被强制执行,因此是否会潜在地 DDos 局域网 在每台机器上处理,如果足够,可能会占用大量带宽 有人加入吗?

    是聊天...生成的数据包数量会比较短。

    多播和广播有什么区别?是 多播真的优越吗?

    搜索网络。有很多关于多播的资源和信息,最准确地说,是 IP 多播。简而言之:

    • 广播传送到广播域上的所有主机。多播传送到所有明确加入多播组的主机,这些主机可能不在同一个广播域中(见最后一点)。

    • 广播强制交换机将广播数据包转发到其所有接口。智能交换机可以通过查看 IGMP 数据包来了解多播数据包必须转发到哪些接口。

    • Broadcast 无法通过树传递广播域。多播数据包可以通过路由器,如果它被配置为路由多播(搜索M-bone

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 2015-06-27
      • 1970-01-01
      相关资源
      最近更新 更多