SVX日記
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
[ツッコミを入れる]