SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|

2025-01-27(Mon) シン・DBusで数当てゲーム

 続いて、クライアントや通信キャプチャを試してみたい」というわけで、クライアントを書いてみた。「数当てゲーム」クライアントだ。

#!/usr/bin/env ruby
 
require 'bundler/setup'
require 'dbus'                                                  # bundle add ruby-dbus
 
bus         = DBus::SessionBus.instance
service     = bus['jp.itline.test.Kazuate']
object      = service['/jp/itline/test/Kazuate']
interface   = object['jp.itline.test.Kazuate']
interface_m = object['jp.itline.test.Kazuate.master']
 
puts(interface_m.range(100))
puts(interface.ready)
 
loop {
    print("\nguess> "); guess = $stdin.gets.to_i
    puts(res = interface.try(guess))
    res =~ /congra/i and break
}

  まんま、というほどに、まんま、だ。で、実行すれば、これまた、まんま、だ。

$ ./kazuate_cli.rb
Range is set.
I'm thinking of a number between 1 and 100.
 
guess> 50
Too low!
 
guess> 80
Too low!
 
guess> 90
Too high!
 
guess> 85
Congratulations!

  Linuxサーバにおける大概のトラブルはtcpdumpによる通信キャプチャで切り分けられるので、DBusに対する通信キャプチャも重要だ……と思ってたのが、基本的な使い方がわかったあたりで、当初の問題はDBusと関係なさそうだという雰囲気が見えてきてしまった。

$ dbus-monitor --session
$ dbus-monitor --session --profile

  というわけで、このふたつくらいで終了である。あしからず。