Работа с сетью в Ruby

НАВИГАЦИЯ ПО СТРАНИЦЕ

HTTP и HTTPS TCP и UDP WebSocket

В Ruby существует множество инструментов для работы с сетью, обеспечивающих поддержку различных сетевых протоколов.

HTTP и HTTPS

Для выполнения HTTP-запросов в Ruby часто используется библиотека Net::HTTP. Это стандартная библиотека, которая позволяет легко отправлять HTTP-запросы и получать ответы.

require 'net/http'
require 'uri'

# Пример отправки HTTP GET-запроса
url = URI.parse('https://www.example.com')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == 'https')

response = http.get(url.path)
puts response.body

TCP и UDP

Для более низкоуровневой работы с TCP и UDP протоколами в Ruby существует библиотека Socket. Она позволяет создавать сокеты для установки соединений и обмена данными.

Пример работы с TCP-сокетом

require 'socket'

# Сервер
server = TCPServer.new(2000)

# Принятие соединения и отправка данных
client = server.accept
client.puts "Hello, client!"
client.close

Пример работы с UDP-сокетом

require 'socket'

# Создание UDP-сокета
udp_socket = UDPSocket.new
udp_socket.bind('localhost', 1234)

# Прием и отправка данных
data, addr = udp_socket.recvfrom(1024)
udp_socket.send("Hello, client!", 0, addr[3], addr[1])

udp_socket.close

WebSocket

Для работы с WebSocket протоколом в Ruby можно использовать библиотеку websocket-driver. Эта библиотека предоставляет удобный интерфейс для обмена данными в реальном времени через веб-сокеты.

require 'websocket/driver'

# Пример использования WebSocket
socket = TCPSocket.new('example.com', 80)
driver = WebSocket::Driver.client(socket)

driver.on(:open) { puts 'WebSocket opened' }
driver.on(:message) { |event| puts "Received message: #{event.data}" }

driver.start

# Отправка сообщения
driver.text('Hello, server!')

# Завершение соединения
driver.close

Ruby предоставляет разнообразные инструменты для работы с сетью и различными сетевыми протоколами. Выбор конкретной библиотеки зависит от ваших потребностей и задач, но стандартные библиотеки, такие как Net::HTTP и Socket, предоставляют удобные средства для работы с HTTP, TCP и UDP протоколами.