Class: RCONSocket
- Inherits:
-
Object
- Object
- RCONSocket
- Includes:
- SteamSocket
- Defined in:
- lib/steam/sockets/rcon_socket.rb
Instance Method Summary collapse
-
#initialize(ip_address, port_number) ⇒ RCONSocket
constructor
A new instance of RCONSocket.
- #reply ⇒ Object
- #send(data_packet) ⇒ Object
Methods included from SteamSocket
#finalize, #receive_packet, timeout=
Constructor Details
#initialize(ip_address, port_number) ⇒ RCONSocket
Returns a new instance of RCONSocket.
16 17 18 19 |
# File 'lib/steam/sockets/rcon_socket.rb', line 16 def initialize(ip_address, port_number) super ip_address, port_number @channel = SocketChannel.open end |
Instance Method Details
#reply ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/steam/sockets/rcon_socket.rb', line 28 def reply raise RCONBanException if receive_packet(1440) == 0 packet_data = @buffer.get @buffer.rewind packet_size = @buffer.long + 4 if packet_size > 1440 remaining_bytes = packet_size - @buffer.size begin if remaining_bytes < 1440 receive_packet remaining_bytes else receive_packet 1440 end packet_data << @buffer.get remaining_bytes -= @buffer.size end while remaining_bytes > 0 end RCONPacketFactory.packet_from_data(packet_data) end |
#send(data_packet) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/steam/sockets/rcon_socket.rb', line 21 def send(data_packet) @channel.connect @remote_socket unless @channel.connected? @buffer = StringIO.new data_packet.bytes @channel.write @buffer end |