Ruby записать байт в сокет

#ruby #sockets #byte

#ruby #сокеты #байт

Вопрос:

Как я могу записать байт в сокет в ruby? Я конкретно имею в виду, как я могу записать что-то вроде 0x02 в сокет. Спасибо.

Ответ №1:

Одним из способов отправки значений в целых байтах было бы использование array.pack.

 socket.write [0x02].pack("C")
  

Комментарии:

1. @mu слишком короткое: верно … это должна быть запись. Спасибо. Я думал о части упаковки, а не о том, чтобы поместить ее в проводную часть. Вызов puts (я полагаю) добавляет n к концу этого (в результате получается два байта).

Ответ №2:

Что-то вроде этого?

 require 'socket'               # Get sockets from stdlib

server = TCPServer.open(2000)  # Socket to listen on port 2000
loop {                         # Servers run forever
  client = server.accept       # Wait for a client to connect
  client.write("x02")
  client.close                 # Disconnect from the client
}
  

Комментарии:

1. write или print было бы более уместно, чем puts в данном случае, если он хочет записать байт в сокет.