相关疑难解决方法(0)

Python:如何检查网络端口是否在Linux上打开?

我如何知道某个端口是否在linux ubuntu上打开/关闭,而不是远程系统,使用python?如何在python中列出这些开放端口?

  • Netstat:有没有办法将netstat输出与python集成?

python linux port netstat

62
推荐指数
9
解决办法
10万
查看次数

在Python中获取打开的TCP端口

我想在Python中的localhost上获得任何随机打开的TCP端口.什么是最简单的方法?

python tcp tcp-port

25
推荐指数
2
解决办法
3万
查看次数

如何让内核在TCP套接字编程中选择范围(1024,5000)中的端口号

当我运行以下代码时:

struct   sockaddr_in sin;
int addrlen;   
addrlen=sizeof(sin);   
memset(&sin, 0, sizeof(sin));  
sin.sin_family = AF_INET;  
sin.sin_addr.s_addr=inet_addr("123.456.789.112");  
sin.sin_port=htons(0); // so that the kernel reserves a unique port for us  
sd_server = socket(PF_INET, SOCK_STREAM, 0);  
bind(sd_server, (struct sockaddr *) &sin, sizeof(sin));  
getsockname(sd_server,(struct sockaddr*)&sin,&addrlen);  
port=ntohs(sin.sin_port); 
printf("port number = %d\n",port);
Run Code Online (Sandbox Code Playgroud)

根据套接字,我必须得到1024到5000之间的端口号,但是我的端口号大约是30,000.
我该怎么办?

sockets kernel tcplistener tcpclient

15
推荐指数
2
解决办法
3万
查看次数

如何在python中选择一个免费的端口号?

可能重复:
在localhost上,如何选择一个空闲端口号?

我的要求与这个问题不同.

在localhost上,如何选择一个免费的端口号?

我正在使用python编写另一个进程的测试设置.另一个进程需要传递一个端口号(比如命令行参数).我无法硬编码一些随机端口号,因为许多用户通常会在同一个盒子中运行相同的测试.现在,如何在python中选择一个自由端口?

编辑:

我不是在python中创建一个套接字.我只需要将一个数字作为命令行参数传递给其他进程.

从DRH的回答中,我可以创建一个虚拟套接字,获取其端口号,关闭它并传递给实际进程.有没有更好的方法来做到这一点?

python

14
推荐指数
1
解决办法
8960
查看次数

如何解决 dist.init_process_group 挂起(或死锁)?

我本来想在 DGX A100 上设置 DDP(分布式数据并行),但它不起作用。每当我尝试运行它时,它就会挂起。我的代码非常简单,只需为 4 个 GPU 生成 4 个进程(为了调试,我只是立即销毁该组,但它甚至没有到达那里):

def find_free_port():
    """ /sf/ask/95568581/ """
    import socket
    from contextlib import closing

    with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
        s.bind(('', 0))
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        return str(s.getsockname()[1])

def setup_process(rank, world_size, backend='gloo'):
    """
    Initialize the distributed environment (for each process).

    gloo: is a collective communications library (https://github.com/facebookincubator/gloo). My understanding is that
    it's a library/API for process to communicate/coordinate with each other/master. It's a backend library.

    export NCCL_SOCKET_IFNAME=eth0
    export NCCL_IB_DISABLE=1

    /sf/ask/4275277331/

    https://pytorch.org/docs/stable/distributed.html#common-environment-variables
    """
    if rank …
Run Code Online (Sandbox Code Playgroud)

python gpu machine-learning multi-gpu pytorch

8
推荐指数
1
解决办法
2万
查看次数

验证 python 中本地端口是否可用

我有一个项目,我在其中生成子进程,它再次需要一个端口号来绑定。端口号是由我的 Python 脚本分配的,我只是在 49152 到 65535 之间随机选择一个端口。

我想验证该端口是否可用并且未被本地系统(*nix)上的任何其他工具使用。

另一个问题我有这个片段:

import socket;
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('127.0.0.1',80))
if result == 0:
   print "Port is open"
else:
   print "Port is not open"
Run Code Online (Sandbox Code Playgroud)

我可以在我的情况下使用这个吗?这不会打开端口并且不会关闭它以供进一步使用吗?

python unix linux port

5
推荐指数
1
解决办法
7674
查看次数

如何使用“C”在 Windows 中查找空闲 TCP 端口

我想要两个 Windows 应用程序,它们使用 Windows 套接字通过 TCP/IP 进行通信。在此,我希望我的程序自动选择可用的空闲端口来建立连接。

有没有办法使用 C 或 C++ 程序找到空闲 TCP 端口?

准确地说,我想自动检测服务器端的空闲端口,并让客户端知道相同的端口(用于连接到服务器)。

谢谢你的时间!

ip winapi tcp tcpclient tcpserver

3
推荐指数
1
解决办法
3831
查看次数

绑定到特定地址但随机端口Linux

是否有一种惯用的方法来指定要绑定的特定地址,但是随机端口?

在我的应用程序中,我打开了几十个连接.我在connect()之前调用bind(),以便我可以指定应该与之建立连接的IP地址.但是,我必须自己找一个开放的端口.它现在工作正常,但如果我需要打开数千个连接,它可能会成为一个问题,因为找到一个开放的端口将变得越来越慢

int fd;
struct sockaddr_in addr;

fd = socket(AF_INET, SOCK_STREAM, 0);

while (TRUE)
{
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = inet_addr("192.168.0.1");
    addr.sin_port = htons((rand() % 65000) + 1);

    if (bind(fd, (struct sockaddr *)&addr, sizeof (struct sockaddr_in)) == 0)
        break;
}
Run Code Online (Sandbox Code Playgroud)

我考虑过编写自己的"端口管理"系统,但我想我会先尝试看看操作系统是否已有功能,然后继续操作

c sockets linux

1
推荐指数
1
解决办法
923
查看次数