telnet v1.0.0

A Crystal Shard for creating telnet servers and clients

telnet

Crystal CI Telnet shard that provides server and client classes. It provides a parser class that handles telnet events with callbacks.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      telnet:
        github: mjblack/telnet
    
  2. Run shards install

Usage

Please see examples/simple_server.cr for a more detailed example that showcases telnet command and subnegotiation handling.

require "telnet"

server = Telnet::Server.new("0.0.0.0", 23)
server.on_connect do |session|
  puts "New client connected: #{session.remote_address}"
  dont_echo = Telnet::Command.new_dont(Telnet::Option::ECHO)
  io.write(dont_echo)
  puts "Sent dont echo"
end

server.on_disconnect do |session|
  puts "Client disconnected: #{session.remote_address}"
end

server.on_wont_echo do |session|
  puts "Client: WONT ECHO"
end

# Spawns listener
server.listen

while true
  Fiber.yield
end

Contributing

  1. Fork it (https://github.com/mjblack/telnet/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Repository

telnet

Owner
Statistic
  • 2
  • 0
  • 3
  • 0
  • 1
  • 1 day ago
  • February 8, 2025
License

MIT License

Links
Synced at

Fri, 21 Feb 2025 02:35:52 GMT

Languages