gpt4 book ai didi

c - TCP 绑定(bind)没有进程绑定(bind)的先验知识

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:47 24 4
gpt4 key购买 nike

在进一步阅读之前,以下内容仅适用于运行嵌入式 Linux 和经过大量修改的内核的 MMUless (cortex-m*) 部分。

我问这个问题有一个非常具体的原因*,但我认为这个问题总体上更有趣:

0) 这必然适用于我正在编写的特定服务,尽管任何扩展或抽象都会很有趣。

1) 假设我是一个进程的实例化,并且我知道可能有与我相同的进程的先前或 future 实例化。我收到了一个独特的**参数,它告诉我我正在实例化 i,其中 i 被限制在一个集合 [0 - (N -1)] 一共 N 个可能的实例化。基于 i,我能够向配置服务注册并请求有关第 i 个实例化 I 必须如何运行的当前参数。此外,我使用 i 确定性地创建一个 TCP 端口,以及其他与此处无关的参数,我必须绑定(bind)到该端口。

所以,问题是:只知道我想要的 TCP 端口(源 self 的论点** i,是否相关或不),我怎么知道是否有任何其他进程绑定(bind)到同一个 TCP 端口?

当然可以处理失败的绑定(bind),但是对于我的应用程序……以及一般的问题,在尝试绑定(bind)之前,用 C 语言对已绑定(bind)的端口进行最有效的测试是什么?或者更确切地说,我想知道绑定(bind)是否会失败,而不是尝试绑定(bind)并处理失败。

*我正在使用某个库*** 和 nommu uC,当两个进程试图绑定(bind)到同一传输协议(protocol)上的同一端口时,它会导致一切困惑——我不知道为什么,我也没有时间弄清楚。

**我相信很少会出现某些情况,在这种情况下,可能会使用相同的参数异步生成两个实例化,该参数应提供唯一且排他的标识;给定流程和系统架构,此流程的每个实例都必须是连续的,因此是唯一的。如果两个具有相同参数的实例化开始,一个必须以最少的和进程受限的逻辑和操作结束。

***我正在使用 uCLibc,但我提到的库有点晦涩。

最佳答案

knowing only my desired TCP port (derived from my argument** i,whether relevant or not), how could I tell if any other process is bound to the same TCP port?

只是(尝试)connect() 到它。

关于c - TCP 绑定(bind)没有进程绑定(bind)的先验知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34237059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com