rubyでTCPsocketを用いて、以下のようなことを実現したいです
10500番ポートで、サーバーに接続する。ただし、ポートが他のプログラムによって使用中だった場合、10501番ポートで同サーバーに接続する
そして、自分で考えて書いてみたプログラムが以下です
ruby
1 socket = nil 2 until socket 3 begin 4 socket = TCPSocket.open(@host, @port) 5 rescue 6 puts "Julius に接続失敗しました\n再接続を試みます" 7 socket=nil 8 @port=@port+1 9 sleep 10 10 retry 11 end 12 end 13 14 puts "Julius にポート番号#{@port}番で接続しました"
ですが、これだと、接続自体はできてしまうのか、2つ同じプログラムを実行した際、両方のプログラムで
"Julius にポート番号10500番で接続しました"
というメッセージが出てしまいます
ポートを分けるうまい方法はないでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。