telnet
Telnet shard that provides server and client classes. It provides a parser class that handles telnet events with callbacks.
Installation
-
Add the dependency to your
shard.yml
:dependencies: telnet: github: mjblack/telnet
-
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
- Fork it (https://github.com/mjblack/telnet/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Matthew J. Black - creator and maintainer