在 Redhawk 中查找带有 python 组件的空闲端口
Finding a free port with a python component in Redhawk
我目前正在进行的项目需要我编辑配置文件以替换旧的标准端口号(如果正在使用该端口)。我目前使用的代码如下:
import os
import sys
import socket
import select
import tempfile
import subprocess
import threading
import Queue
import time
import fileinput
...
def find_open_port():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("",0))
s.listen(1)
tempport = s.getsocketname()[1]
s.close()
return tempport
当我从我的 Ubuntu 机器 (Python 2.7.6) 运行它时,它运行良好,但在我的 Redhawk 组件中运行的 CentOS 6 虚拟机上,我得到以下信息:
AttributeError: '_socketobject' 对象没有属性 'getsocketname'
不太确定为什么会出现此错误。 Python 在Redhawk 运行的是2.6 我想说什么?
关于为什么会发生这种情况以及如何解决的任何线索?
您的代码调用了 getsockname 方法,但您的错误是 getsocketname,您确定在将其写入 Redhawk 时复制正确吗?
我目前正在进行的项目需要我编辑配置文件以替换旧的标准端口号(如果正在使用该端口)。我目前使用的代码如下:
import os
import sys
import socket
import select
import tempfile
import subprocess
import threading
import Queue
import time
import fileinput
...
def find_open_port():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("",0))
s.listen(1)
tempport = s.getsocketname()[1]
s.close()
return tempport
当我从我的 Ubuntu 机器 (Python 2.7.6) 运行它时,它运行良好,但在我的 Redhawk 组件中运行的 CentOS 6 虚拟机上,我得到以下信息:
AttributeError: '_socketobject' 对象没有属性 'getsocketname'
不太确定为什么会出现此错误。 Python 在Redhawk 运行的是2.6 我想说什么? 关于为什么会发生这种情况以及如何解决的任何线索?
您的代码调用了 getsockname 方法,但您的错误是 getsocketname,您确定在将其写入 Redhawk 时复制正确吗?