Added Logger, added TACNET test server, networking now seems to work(heartbeats are sent and received)

This commit is contained in:
2020-06-07 21:23:16 -05:00
parent c694d29050
commit 95209ded73
10 changed files with 128 additions and 40 deletions

View File

@@ -1,6 +1,7 @@
module TAC
class TACNET
class Client
TAG = "TACNET|Client"
CHUNK_SIZE = 4096
attr_reader :uuid, :read_queue, :write_queue, :socket,
@@ -32,6 +33,8 @@ module TAC
if message_in.empty?
break
else
log.i(TAG, "Read: " + message_in)
@read_queue << message_in
@packets_received += 1
@@ -39,12 +42,19 @@ module TAC
end
end
sleep @sync_interval / 1000.0
end
end
Thread.new do
while connected?
# Write to socket
while message_out = @write_queue.shift
write(message_out)
@packets_sent += 1
@data_sent += message_out.length
@data_sent += message_out.to_s.length
log.i(TAG, "Write: " + message_out.to_s)
end
sleep @sync_interval / 1000.0
@@ -52,7 +62,7 @@ module TAC
end
end
def sync(&block)
def sync(block)
block.call
end
@@ -62,6 +72,8 @@ module TAC
while message
puts(message)
log.i(TAG, "Writing to Queue: " + message)
message = gets
end
end
@@ -79,7 +91,12 @@ module TAC
end
def write(message)
@socket.puts("#{message}\r\n\n")
begin
@socket.puts("#{message}\r\n\n")
rescue Errno::EPIPE, IOError => error
log.e(TAG, error.message)
close
end
end
def read
@@ -87,10 +104,14 @@ module TAC
begin
data = @socket.readpartial(CHUNK_SIZE)
message += message
message += data
rescue Errno::EPIPE, EOFError
message = ""
break
end until message.end_with?("\r\n\n")
return message
return message.strip
end
def puts(message)