UDP服务器/UDP客户端的区别

5

我正在尝试使用UDP协议,但是我不明白UDP服务器UDP客户端之间的区别。它们不是做同样的事情吗?


2
一个UDP服务器总是在监听。而UDP客户端只有在发送消息后,等待响应时才会监听。至少在大多数情况下是这样的。是的,它们很相似,但从逻辑上讲它们是不同的。我认为对于任何通信协议都是如此,不仅仅是UDP。一些协议可能更容易实现吧。 - Michael Puckett II
3个回答

5

UDP服务器:

  • 首先运行(打开侦听端口)
  • 打开一个特定的端口
  • 通常可以接受多个客户端连接

UDP客户端:

  • 其次运行(假设服务器已经在运行)
  • 指示特定的目标端口
  • 随机地(通常)选择一个源端口,服务器将回复到该端口
  • 通常是单线程的,并且仅处理与UDP服务器的一个连接

事实上,它与TCP并没有太大的区别,只是没有三次握手,在流量控制和拥塞控制方面也没有控制。


3

实际上,这取决于你从哪个角度来看。

从服务器/客户端架构的角度来看,它肯定是不同的。你可以参考其他答案。

从套接字编程的角度来看,它是相当相似的。由于UDP是无连接的,因此服务器和客户端都将使用相同的sendtorecvfrom方法。没有专门为服务器或客户端设计的套接字API(针对UDP)。因此,我更倾向于将双方称为同行者或发送者/接收者,而不是服务器/客户端。


0

引用自维基百科关于客户端-服务器模型的条目

服务器组件为一个或多个客户端提供功能或服务,这些客户端发起对此类服务的请求。

换言之,服务器和客户端之间的区别是实际应用中的概念,涉及到集中化和角色等概念。就像在餐厅里,服务员和顾客之间的区别一样。根据餐厅的不同,客户端也可能是服务员,比如在自助餐厅里,你可以为家人或朋友取食物。无论哪种情况,提供服务的实体都可以被视为服务器,而接收服务的实体则被概念化为客户端。

客户端-服务器模型并不是唯一的模型,而是被认为是"分布式对等系统的子类别"

希望这能帮到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接