Sha256: 226540e2ced33426fcd2d801760ff4e1f77681866bee770ff547b0a1cd044b89

Contents?: true

Size: 795 Bytes

Versions: 13

Compression:

Stored size: 795 Bytes

Contents

require 'asir/transport/connection_oriented'
require 'socket'

module ASIR
  class Transport
    # !SLIDE
    # TCP Socket Transport
    class TcpSocket < ConnectionOriented
      # !SLIDE
      # TCP Socket Client
      def _client_connect!
        sock = TCPSocket.open(address, port)
      end

      # !SLIDE
      # TCP Socket Server
      def _server!
        @server = TCPServer.open(port)
        @server.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, false)
      end

      def _server_accept_connection! server
        socket = server.accept
        [ socket, socket ] # Use same socket for in_stream and out_stream
      end

      def _server_close_connection! stream, out_stream
        stream.close rescue nil
      end
    end
    # !SLIDE END
  end # class
end # module


Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
asir-1.1.6 lib/asir/transport/tcp_socket.rb
asir-1.1.5 lib/asir/transport/tcp_socket.rb
asir-1.1.4 lib/asir/transport/tcp_socket.rb
asir-1.1.3 lib/asir/transport/tcp_socket.rb
asir-1.1.2 lib/asir/transport/tcp_socket.rb
asir-1.1.1 lib/asir/transport/tcp_socket.rb
asir-1.1.0 lib/asir/transport/tcp_socket.rb
asir-1.0.8 lib/asir/transport/tcp_socket.rb
asir-1.0.7 lib/asir/transport/tcp_socket.rb
asir-1.0.6 lib/asir/transport/tcp_socket.rb
asir-1.0.5 lib/asir/transport/tcp_socket.rb
asir-1.0.4 lib/asir/transport/tcp_socket.rb
asir-1.0.1 lib/asir/transport/tcp_socket.rb