{"height":"190","categories":[],"type":"rich","url":"https://sdyuki.hatenadiary.org/entry/20080502/1209699676","blog_title":"sdyuki-devel","author_name":"sdyuki","provider_name":"Hatena Blog","description":"Cagra\u306e\u958b\u767a\u306b\u5168\u7136\u53c2\u52a0\u3067\u304d\u3066\u3044\u306a\u304f\u3066\u30d8\u30b3\u307f\u3064\u3064\u3042\u308b\u4eca\u65e5\u3053\u306e\u9803\u3002\u767a\u4f5c\u7684\u306b\u7c21\u6613\u5206\u6563\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u5b9f\u88c5\u3057\u3066\u307f\u305f\u3002 server.rb client.rb server.rb require 'socket' require 'thread' require 'rubygems' require 'json' class Server def initialize(srv) @srv = srv @db = {} end def self.open(port) self.new(TCPServer.open(port)) end def run while true Thread.new(@srv.\u2026","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsdyuki.hatenadiary.org%2Fentry%2F20080502%2F1209699676\" title=\"\u7c21\u6613\u5206\u6563\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u5b9f\u88c5\u3057\u3066\u307f\u305f - sdyuki-devel\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","title":"\u7c21\u6613\u5206\u6563\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u5b9f\u88c5\u3057\u3066\u307f\u305f","image_url":null,"provider_url":"https://hatena.blog","version":"1.0","width":"100%","author_url":"https://blog.hatena.ne.jp/sdyuki/","blog_url":"https://sdyuki.hatenadiary.org/","published":"2008-05-02 12:41:16"}