我在RPi上运行此程序(sudo ais_rx.tcp -d --tcp):
https://github.com/chgans/gr-ais
我已经让它运行并且可以创建输出文件。我无法获得TCP服务器选项。 Netstat --tcp什么都没显示。 Telnet in ...连接被拒绝。我想可能存在代码错误:
conns = [] #active connections
if options.tcp is True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 9987))
s.listen(1)
s.setblocking(0)
try:
while 1:
if options.tcp is True:
try:
conn, addr = s.accept()
conns.append(conn)
print "Connections: ", len(conns)
except socket.error:
pass
if not queue.empty_p():
while not queue.empty_p():
msg = queue.delete_head() # Blocking read
sentence = msg.to_string()
if options.tcp is True:
for conn in conns[:]:
try:
conn.send(sentence + "\n")
except socket.error:
conns.remove(conn)
print "Connections: ", len(conns)
else:
print sentence
sys.stdout.flush()
elif runner.done:
if options.tcp is True:
s.close()
break
else:
time.sleep(0.1)
我能想到的唯一其他错误是,如果没有数据(我的办公室里没有数据)那么套接字永远不会被绑定。我已经尝试在引号中手动输入ip,用引号,为它分配一个变量......如果它没有连接直到数据可用,我该怎么改变它?我正在考虑删除:
if not queue.empty_p():
while not queue.empty_p():
这样做是否可以解决队列中是否有数据?我只是在这一点上随机猜测。谢谢。任何帮助将不胜感激。