Socket 是雙向通訊端點,支援進程間通訊(同機或跨機)。Ruby 提供底層 TCPSocket/TCPServer 及高階 Net::HTTP 等函式庫。

require 'socket'
hostname = 'localhost'
port = 2000
s = TCPSocket.open(hostname, port)
while line = s.gets
puts line.chop
end
s.close
require 'socket'
server = TCPServer.open(2000)
loop do
client = server.accept
client.puts(Time.now.ctime)
client.puts "Closing the connection. Bye!"
client.close
end
require 'socket'
server = TCPServer.open(2000)
loop do
Thread.start(server.accept) do |client|
client.puts(Time.now.ctime)
client.puts "Closing the connection. Bye!"
client.close
end
end
require 'socket'
host = 'www.tutorialspoint.com'
port = 80
path = '/index.htm'
request = "GET #{path} HTTP/1.0\r\n\r\n"
socket = TCPSocket.open(host, port)
socket.print(request)
response = socket.read
headers, body = response.split("\r\n\r\n", 2)
print body
require 'net/http'
host = 'www.tutorialspoint.com'
path = '/index.htm'
http = Net::HTTP.new(host)
headers, body = http.get(path)
if headers.code == "200"
print body
else
puts "#{headers.code} #{headers.message}"
end
Net::FTP、Net::SMTP、Net::POP、Net::IMAP 分別對應 FTP、SMTP、POP3、IMAP 協定。