class

Mayu::InactivityTimeoutTCPServer

Inherits TCPServer < Socket::Server < TCPSocket < IPSocket < Socket < Crystal::System::Socket < IO::Buffered < IO < Reference < Object

Constants

INACTIVITY_TIMEOUT = 15.seconds

Instance methods

accept?

Accepts an incoming connection.

Returns the client TCPSocket or nil if the server is closed after invoking this method.

require "socket"

server = TCPServer.new(2022)
loop do
  if socket = server.accept?
    # handle the client in a fiber
    spawn handle_connection(socket)
  else
    # another fiber closed the server
    break
  end
end
Source