gpt4 book ai didi

检查 Linux 中的端口可用性

转载 作者:行者123 更新时间:2023-11-30 20:51:52 27 4
gpt4 key购买 nike

我需要使用 Linux 在同一台计算机上启动游戏的多个实例。创建游戏时,会在指定端口号启动服务器(使用带有 --port NUMBER 作为参数的命令行命令),然后每个玩家将自己附加到该端口来玩游戏(以类似的方式)。

我需要通过一个小 C 程序并行启动数百个游戏,该程序使用 stdlib.h 系统库函数 (system(const char *command)) 来启动游戏服务器和游戏玩家。

我需要知道的是:在该端口号上启动游戏服务器之前,如何通过该 C 程序检查端口是否可用?需要注意的是,我的程序本身并不绑定(bind)到任何端口,它只是启动(使用系统)实际尝试连接到该端口的程序。

最佳答案

你必须直接使用bind(),如果不成功你可以尝试另一个端口。

检查端口是否空闲,然后绑定(bind)是不可能的,并且会成为竞争条件:您刚刚检查了端口是否空闲,但有人已经使用了它。

阅读/proc/net/tcp 可以帮助您,但竞争条件仍然适用。

关于检查 Linux 中的端口可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24384561/

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