1

1 つのスクリプトがファイルから読み取り、別のスクリプトに 1 行ずつデータを送信し、「サーバー」スクリプトがそのデータに基づいて動作する eventmachine アプリがあります。残念ながら、「サーバー」スクリプトは正常に実行receive_dataされません。接続が行われていることは eecutespost_initであることを知っており、sender スクリプトがデータを送信していることも知っています。これは、サーバーの起動方法と一緒に私のコードの一部です。

module BT_Server
    def post_init
        puts "-- someone connected to the echo server!"
    end
    def receive_data(data)
        puts "hi"
        int, time, *int_macs = data.split("-")
        # more stuff that isn't needed here
    end
    def bt_left(dev)
        dev.save
        if t = Device.macs.index(dev.mac)
            Device.all[t].add_int(dev.int, dev.t_0, dev.t_l)
        else
            Device.new(dev.mac, dev.int, dev.t_0, dev.t_l)
        end
        return false
    end
    def unbind
        puts "disconnection"
    end
end

EventMachine::run {
  EventMachine::start_server 'localhost', 8081, BT_Server
  puts t_0 = Time.new
  puts 'listening...'
}

注: モジュールの定義は、サーバー スクリプトに必要なクラスと一緒に、別のファイルに格納しています。

4

1 に答える 1

1

コードをテストしたところ、telnet 経由で何かを送信するたびに「hi」が出力されました。私の観点からは、コードは正しいです。送信スクリプトが機能していると確信していますか? ポート 8081 で手動 telnet を試してみてください。

于 2011-03-01T08:31:49.003 に答える