superclass=SimpleDelegator
type=class
library=net.telnet
extended=
included=

Υ饹 telnet Υ饤ȵǽ󶡤ޤ

Υ饹³ѤƤ
åȥ֥(̾ [[c:TCPSocket]])Υ᥽åɤ
٤Ѥ뤳ȤǤޤ([[c:SimpleDelegator]] Ѥ
ޤ)
ˤäơ[[m:IO#close]] ³
Ĥꡢ[[m:IO#sysread]]  [[m:Net::Telnet#waitfor]] 
Ȥ鷺˥ǡľɤळȤǤޤ

telnet ǥ⡼ȥۥȤ˥󤷤ƥͳ
ޥɤ¹Ԥ뤳ȤͤƤߤޤ礦
 Net::Telnet Ǽ¸뤿ˤϡ
ޤ [[m:Net::Telnet.new]]  "Host" ץ
Ϳƥ֥Ȥꡢ [[m:Net::Telnet#login]] 
桼̾ȥѥɤäƥ󤷡
[[m:Net::Telnet#cmd]] ǥޥɤ
¹ԡǸ IO#close ³Ĥޤ
[[m:Net::Telnet#waitfor]], [[m:Net::Telnet#print]],
[[m:Net::Telnet#puts]], [[m:Net::Telnet#write]] ʤɤ
ä᥽åɤϤʣʤȤ򤹤ˤΤ߻ȤäƤ

Net::Telnet Υ֥Ȥ SMTP  HTTP Τ褦 telnet 
ʤӥˤѤǤޤξˤ 
[[m:Net::Telnet.new]]  "Port" ץͿ뤳Ȥ
ݡȤꤹɬפǤ礦ޤ
"Telnetmode" ץ false 
ϤȤ telnet Υޥᤷʤ褦
ʤФʤޤ[[m:Net::Telnet#login]] 
ޤưʤΤǡǧڤץ޼Ȥ
ɬפޤ

̿ץȥˤäƤϡ[[m:Net::Telnet.new]] "Prompt"
ϤƤ [[m:Net::Telnet#cmd]] 򤦤ޤư뤳Ȥ
Ǥ뤫⤷ޤ
ޤ[[m:Net::Telnet#cmd]] Ƥ֤Ȥ "Match" 
ꤷƤƱͤΤȤǤޤ
ޤ[[m:Net::Telnet#puts]]  [[m:Net::Telnet#waitfor]] 
ľܻȤäƤȤꤹ뤳ȤǤޤ
Ǥޤʤϡ
[[m:IO#sysread]] ľܸƤɬפ뤫⤷ޤ


[[m:Net::Telnet.new]] ˤ "Proxy" ץǻꤷ
֥Ȥ̤̿򤹤뤳ȤǤޤ
"Proxy" ץ [[c:Net::Telnet]] Υ֥Ȥ
Ϥˤϡ̿ϩѤޤ[[c:Socket]]
Τ褦ɤ߽񤭲ǽ [[c:IO]] ֥ȤϤˤϡ
Υ֥Ȥ̤Ƥ꤬Ԥޤ
εǽϥ˥åȥƥȤ򤹤ʤɤǤ礦

=== 

󤷤ƥޥɤ㡢⡼ȥۥȤ֤äƤʸ
٤ɸϤɽ
  require 'net/telnet'

  # ⡼ȥۥ "foobar" ³
  # ॢȤ 10 
  localhost = Net::Telnet.new("Host" => "localhost",
                              "Timeout" => 10)
  
  # 󤷡ץץȤФޤԤ碌
  telnet.login("your name", "your password") {|c| print c}
  
  # ls ޥɤ¹Ԥ¹Ը塢ץץȤФޤԤ碌
  telnet.cmd("ls") {|c| print c}
  
  # sleep  5 
  telnet.cmd("sleep 5 && echo foobar &") {|c| print c}
  
  STDOUT.flush # <- 줬ʤȤޤǽƤ뤳Ȥ狼ˤ
  
  # ΥޥɤνϤԤ碌
  telnet.waitfor(/foobar\Z/) {|c| print c}
  
  # 󥻥åνλ
  telnet.cmd("exit") {|c| print c}
  telnet.close

POP Ф˥᡼뤬Ƥ뤫ɤ򸫤롣⡼ȥۥȤ餭ʸ
٤ɸϤɽ
  require 'net/telnet'

  # ⡼ȥۥ(POP) "foobar" ³
  # ݡֹ110(POPwell-knownݡ)
  # "Telnetmode"  off (telnetѤüʥХᤷʤ)
  # Prompt (ޥɤζڤ)  POP λͤˤ /^\+OK/n Ȥ
  pop = Net::Telnet::new("Host" => "foobar",
                         "Port" => 110,
                         "Telnetmode" => false,
                         "Prompt" => /^\+OK/n)
  # ǧڤ򤹤
  # Net::Telnet#login ϻȤʤ(Υޥɤۤʤ)Τ
  # Net::Telnet#cmd ǥ桼̾ȥѥɤ
  pop.cmd("user " + "your_username") { |c| print c }
  pop.cmd("pass " + "your_password") { |c| print c }
  
  # list ޥɤƤ᡼ɽ
  pop.cmd("list") { |c| print c }
  
  # λ
  pop.close
