我已经正在死去在C和Winsock中实现聊天服务器很长一段时间了,但我没有花时间。部分原因是因为我仍然不确定有关在Windows操作系统上构建服务器的一些概念性想法,例如聊天。
以下是我一直在考虑的一些问题:
用户x如何通过通用LAN连接到我的服务器 没有我依赖他们输入网络地址(例如地址 可能无效,重定向到其他服务器等。)
如果我使用广播来解决上述问题,那么聊天会足够可靠吗?
这可能是DD局域网,因为数据包会在每台机器上被强制处理,如果有足够的人加入,可能会占用大量带宽吗?
多播和广播有什么区别?多播真正优越吗?
等
根据请求,我对可靠性的定义是我可以在发送的数据包中始终获得大多数数据。换句话说,我不介意丢弃一些数据包,但我很清楚数据是否在此过程中被搞砸了很多。
目前,我有很多问题而不是答案,但我得到的主要观点是:
答案 0 :(得分:3)
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?
定义您对可靠性的要求。
这可能会导致DDO成为局域网,因为数据包将被强制执行 在每台机器上处理,如果足够的话可能会占用大量带宽 人们加入?
这是一个聊天......生成的数据包量相对较短而且很小。
多播和广播有什么区别?是 多播真正优越吗?
搜索网络。有很多关于多播的资源和信息,最准确的是IP多播。简而言之:
广播传送到广播域中的所有主机。多播传递给所有明确加入多播组的主机,这些多播组可能不在同一个广播域中(参见最后一点)。
广播强制交换机将广播数据包转发到其所有接口。智能交换机可以从查看IGMP数据包中获益,以了解哪些接口必须转发到组播数据包。
广播无法通过广播域进行树形切换。如果路由器被配置为路由多播(搜索M-bone
)