More fleshing out of networking

This commit is contained in:
2020-05-09 09:56:03 -05:00
parent bae6a6a332
commit e94f2582f9
7 changed files with 61 additions and 25 deletions

View File

@@ -1,16 +1,13 @@
class IMICFPS
module Networking
class Client
attr_reader :uuid,
:packets_sent, :packets_received,
attr_reader :packets_sent, :packets_received,
:data_sent, :data_received
def initialize(socket:)
@socket = socket
@write_queue = []
@read_queue = []
@uuid = "not_defined"
@packets_sent = 0
@packets_received = 0
@data_sent = 0
@@ -18,9 +15,23 @@ class IMICFPS
end
def read
data = @socket.recvfrom_nonblock(Protocol::MAX_PACKET_SIZE)
@read_queue << Packet.decode(data)
@packets_received += 1
@data_received += data.length
rescue IO::WaitReadable
end
def write
@write_queue.each do |packet|
raw = Packet.encode
@socket.send(raw, 0)
@write_queue.delete(packet)
@packets_sent += 1
@data_sent += raw.length
end
end
def puts(packet)
@@ -28,7 +39,7 @@ class IMICFPS
end
def gets
@socket.recvfrom_nonblock(Protocol::MAX_PACKET_SIZE)
@read_queue.shift
end
def close