python - Python socket IPC - 端口号轮盘赌
问题描述
请原谅我对套接字/网络的所有事情一无所知,这对我来说是一个相对较新的领域。我正在尝试在同一台机器上运行的两个 python 应用程序之间完成一些进程间通信。使用该模块似乎很简单,socket
到目前为止,我已经能够使用以下文章很好地实现这一点:Python 中的基本套接字编程。这允许我使用我的本地地址并指定端口号以在进程之间进行通信。但是,如果另一个进程已经在使用相同的端口号会怎样?换句话说,不能保证我任意选择的端口号尚未使用,从而破坏了我的代码。
所以我的问题是:有没有办法确保我在服务/连接套接字时使用唯一的端口/地址组合?我可以使用不只是主机名的地址吗?(当我尝试这个时,我得到了一个socket.gaierror
)。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (socket.gethostbyname(socket.gethostname()), 12345) # what can we do here to use something more unique than the host ip address?
sock.bind(server_address)
解决方案
推荐阅读
- amazon-web-services - 从 S3 检索对象是否需要成本?
- sql - Oracle apex 19.1 显示图像错误 ORA-00932:不一致的数据类型:预期的 CHAR 得到了 LONG BINARY
- javascript - 检查数组是否包含嵌套数组的所有元素
- php - 如何在laravel中同时向同一个表中插入多行
- google-app-engine - google app engine源码根在哪里
- r-markdown - 如何使用 bash 引擎更改 knitr 块的输出
- jquery - 用户脚本:自动填充 Sharepoint 用户列表组合框过滤器
- perl - 为什么 substr-lvalue 比四参数 substr 快?
- ios - 以编程方式获取集合视图部分在集合视图协议方法之外的高度
- r - 在 R 中,如何将使用 ggplot2 制作的图形堆叠在一起?