このプログラムをRPi(sudo ais_rx.tcp -d --tcp)で実行しています。
https://github.com/chgans/gr-ais
実行して、出力ファイルを作成できます。TCPサーバーオプションを機能させることができません。Netstat--tcpは何も表示しません。Telnetで...接続が拒否されました。おそらくコードエラーがあると思います:
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():
そうすれば、キューにデータがあるかどうかに関係なく、他の処理を実行できますか?この時点でランダムに推測しているだけです。ありがとう。どんな助けでも大歓迎です。