Sha256: 72c9e818280a00cdefeeebe1848c2d1b728ea5ae7f9119eada0d38da75d9dccb
Contents?: true
Size: 1.16 KB
Versions: 3
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true require 'socket' module Whatup class Client include Thor::Shell def initialize ip:, port: @dest = { ip: ip, port: port, address: "#{@ip}:#{@port}" } end def connect say "Connecting to #{@dest[:ip]}:#{@dest[:port]} ..." @socket = TCPSocket.open @dest[:ip], @dest[:port] @request = request! @response = listen! [@request, @response].each &:join rescue SignalException say 'Exiting ...', :red exit end def request! puts 'Please enter your username to establish a connection...' begin Thread.new do loop do message = $stdin.gets.chomp @socket.puts message end end rescue IOError => e puts e.message # e.backtrace @socket.close end end def listen! Thread.new do loop do response = @socket.gets.chomp puts response.to_s @socket.close if response.eql? 'quit' end end rescue IOError => e puts e.message # e.backtrace @socket.close end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
whatup-0.2.2 | lib/whatup/client.rb |
whatup-0.2.1 | lib/whatup/client.rb |
whatup-0.2.0 | lib/whatup/client.rb |