【问题标题】:what makes a udp socker server or client是什么使 udp 套接字服务器或客户端
【发布时间】:2019-12-24 04:01:40
【问题描述】:

udp 服务器可以接收和发送 udp 消息。 udp 客户端可以接收和发送消息。 那么是什么造就了客户端,什么造就了服务器 服务器是发起第一条消息的一方还是在套接字上进行绑定的一方还是两者兼而有之?

【问题讨论】:

  • 我看了很多关于堆栈溢出的帖子,也在网上,我发现很多相互矛盾的解释。
  • 主要基于意见。但一般来说,“服务器”是等待连接的端点,而“客户端”是发起连接的端点。请注意,在这些定义下,进程可以同时充当服务器和客户端,例如FTP 处于活动模式。没有统一的定义;您只需要确保在与某人谈论“服务器”和“客户端”时,您同意使用对你们双方都意味着相同的术语。
  • 没什么:协议没有客户端或服务器;只是同行。你能得到的最接近的是“服务器”是绑定到固定端口的那个,如果只有一个,但在 UDP 多播中完全崩溃,客户端,或者更确切地说是组成员,必须绑定到一个固定的端口号。

标签: network-programming udp client-server


【解决方案1】:

服务器始终为客户端请求提供服务。根据定义。这意味着(由此而来)客户端总是发送第一条消息(请求)。为了能够接收消息,服务器绑定了一个套接字。套接字绑定是操作系统为您的进程保留特定(本地)端口的指令(无论是服务器还是客户端)。

更新 #1

所以 SERVER 必须执行 bind() 但 CLIENT 可以执行 bind()。如果您需要确定代码是否为 SERVER,则应在执行 send()sendto() 之前检查此代码是否执行 bind()recv()recvfrom()

【讨论】:

  • 从你的回复中我是否明白,有绑定功能的总是服务器?
猜你喜欢
  • 2011-08-15
  • 1970-01-01
  • 2015-03-09
  • 2012-07-22
  • 2016-06-04
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2012-03-27
相关资源
最近更新 更多