当前位置: 首页 > 知识库问答 >
问题:

使用临时端口打开boost.asio UDP套接字

羊舌承天
2023-03-14

我正在处理一个应用程序,它将通过UDP从另一个本地服务接收RTP数据包。在协议的早期,我接收到一个带有IP地址的消息,我将从该IP地址接收这些RTP数据包,但端口号将被给出为0(零)...我将使用临时端口打开我的UDP套接字。我对给定消息的响应将包含我打开的实际端口,这样发送者就可以知道将数据包定向到哪里。

我的网络库是用boost::asio实现套接字的。在哪里可以找到关于如何打开这样一个套接字而不指定非零端口(即使用临时端口)的清晰信息?在boost文档中搜索“短命”并不能给我网络结果。

当然,我愿意看到一个实际的例子,但是找到好的文档也是很好的。

多谢了。

共有1个答案

文嘉禧
2023-03-14

我会质疑使用这样的临时端口,但是...-您可以将UDP套接字绑定到端口0,然后使用local_endpoint()检索操作系统分配的实际端口。

 类似资料:
  • 是否有一种简单的(非迭代的)方法来绑定两个套接字,一个TCP和一个UDP,以保证它们都具有相同的临时端口? 我有一个简单的服务器,最初通过TCP连接,但也通过UDP传输。我不想在连接后从客户端发送UDP数据包,只是为了让服务器发现客户端的UDP临时端口。除非必要,否则我不想通过初始传输控制协议消息发送端口号。 现在,我在TCP套接字上的getsockname之后显式绑定客户端UDP套接字的端口,以

  • 问题内容: 我可以在服务器上ping pong Redis: 但是在远程,我遇到了问题: 在配置中,我得到了标准端口: 因此,也许我应该在远程Ubuntu计算机上打开端口6379?我该怎么做? 问题答案: 您是否设置了绑定选项以允许Redis服务器上的远程访问? 之前(文件) 后 并运行以重新启动服务器。如果这不是问题,则可能要检查所有可能阻止访问的防火墙。 重要说明: 如果您不使用防火墙(ipt

  • 问题内容: 我正在学习Java套接字编程。我使用以下语句连接到网站: 当我调试应用程序并查看s的内容时,我看到: 1)我想知道此本地端口7846的来源以及确切的含义。 2)如果网站的IP地址是2.21.246.97,为什么我不能仅在浏览器的地址栏中输入2.21.246.97来连接到该网站? 谢谢 问题答案: 这是本地套接字端口号。通常由系统分配。 请参阅什么是套接字?。 在客户端:客户端知道运行服

  • 问题内容: 我正在尝试在Python中建立安全的套接字连接,而使用SSL有点麻烦。我已经找到一些有关如何与SSL建立连接的代码示例,但它们都涉及密钥文件。我尝试连接的服务器不需要接收任何密钥或证书。我的问题是,我该如何实质上包装带有SSL的python套接字连接。我知道我应该使用的密码是,协议是。这就是我一直在尝试的: 运行此代码时,没有任何错误,但响应为空。当尝试在命令行中调试此代码时,通过在终

  • 我在XAMPP中安装了一个apache web服务器,其中安装了PHP和OCI8 for Oracle。 我的默认请求端口是1934,但Apache会自动打开其他端口,有时我必须重新启动才能正确运行它。 在错误日志中,唯一显示的是: 服务器软件是Windows 7上的XAMPP 3.2.1。

  • 这就是我有点困惑的地方。 我在服务器端拿到的地址,有客户端连接的WiFi网络的公有地址(这是我预期的),还有一些端口号,基于我对NATs的理解,应该和客户端实际使用的端口号不一样,是用来翻译地址的。 但是,如果我在客户端上使用了getsockname()函数,则得到的端口号与服务器给出的端口号相同。