お絵かきサーバーsample
draw_server0.rb
require 'bundler/setup' require 'gtk2' require 'socket' w = Gtk::Window.new w.set_size_request(400, 400) w.set_resizable(false) w.set_app_paintable(true) w.realize drawable = w.window gc = Gdk::GC.new(drawable) colormap = Gdk::Colormap.system black = Gdk::Color.new(0, 60000, 0) red = Gdk::Color.new(60000, 0, 0) colormap.alloc_color(black, false, true) colormap.alloc_color(red, false, true) w.signal_connect("expose_event") do gc.set_foreground(red) drawable.draw_rectangle(gc, true, 0, 0, 400, 400) end Thread.start(drawable, gc, black, w) do |d, gc, b, w| s0 = TCPServer.open(6934) id = Gtk.timeout_add(100) do Gtk.timeout_remove(id) gc.set_foreground(b) Thread.start(s0.accept, d, gc) do |sock, d, gc| (d.draw_rectangle(gc, true, 0, 0, 400, 400)) if sock.gets.chomp == "line" sock.close end end end w.signal_connect("destroy") {Gtk.main_quit} w.show_all Gtk.main
draw_client0.rb
require 'socket' sock = TCPSocket.open("localhost", 6934) sock.puts "line" sock.close