1

このプログラムを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():

そうすれば、キューにデータがあるかどうかに関係なく、他の処理を実行できますか?この時点でランダムに推測しているだけです。ありがとう。どんな助けでも大歓迎です。

4

0 に答える 0