2009-12-17 14:03 佚名
字型大小:t
| t
我們這次為大家舉出的ruby監控網路的**範例,是乙個定時監控網路中斷的**編寫方式。希望可以起到方便大家理解的作用。
ad:
ruby語言的出現,讓不少程式設計人員找到了程式設計中的快樂之處。它的熟練應用可以幫助我們減少大量的程式設計時間,完好的完成我們所需要的功能。在這裡我們就介紹其中ruby監控網路的一些實現技巧。
ruby監控網路任務一:寫乙個ruby程式,每50秒鐘向某個位址ping一次,如果沒有相應,那麼就傳送警告資訊。
require 'ping'
def every_n_seconds(n)
loop do
before
= time
.now
yield
interval
=n-(time.now-before)
sleep(interval) if interval>0
end
end
every_n_seconds(50) do
pingresult
=ping
.pingecho
("www.sina.com")
puts pingresult
if pingresult
="true"
else
puts "傳送ping訊息失敗!"
end
end
這裡的技巧
我們把乙個方法塊傳遞給了函式every_n_seconds,我們不但傳遞了變數「n」,還傳遞了方法。
yield是乙個關鍵字,傳遞過去的方法在這個地方使用。,sleep也是乙個關鍵字。這裡用到了ping的ruby 標準庫。
ruby監控網路任務二:寫乙個ruby 的伺服器程式(soap),如果客服端呼叫,那麼返回乙個:hello
伺服器端的編碼:
require 'soap/rpc/standaloneserver'以上就是對ruby監控網路的一些技巧的講解應用。class myserver
<
soap::rpc::standaloneserver
def initialize(*args)
super
add_method(self,'sayhelloto','username')
end
end
class myserver
def sayhelloto(username)
"hello ,#."
end
end
server
=myserver
.new('coolserver'
,'urn:mysoapserver','localhost',8888)
trap('int')
server.start
Ruby傳送HTTP請求
ruby使用http協議傳送請求的方法備忘。好像這個包裡面就很好用 require open uri 1.建立http連線 通過get方式傳送請求引數 ruby require open uri 如果有get請求引數直接寫在uri位址中 2.通過post傳送請求引數 返回的cookie puts r...
html 實時監控傳送資料
我們都知道ajax可以做非同步提交,可以從乙個檔案裡得到返回的資料,如此便能夠實時的得到資料,實時重新整理頁面,如下 setinterval function 3000 第二種方法 可以通過html 的乙個函式 eventsource來實現這個功能。如下 div data role footer p...
Ruby網路程式設計(1)
關鍵字 size xx large tcpsocket tcpserver size 這個例子是這樣的 客戶端連上伺服器後,伺服器向客戶端的終端顯示伺服器的時間,然後將來自客戶端的網路連線養關閉。img my tcp server.rb require socket get sockets from...