Java based telnet server API? reddit / bbs ---------------------------------------------------------------------- spentmiles · 2019-10-19 12:42 Hacking on the Telegard source back in the day got me into coding. I always wanted to write my own BBS software. I've been doing Java server side development for the last fifteen or so years, so I'd like to do it in Java. I started to write one using the basic sockets and whatnot, but it seemed like every telnet client behaved differently in terms of display. It'd look and respond one way in Linux, but behave totally differently in cygwin or across the various shades of Windows. Does anyone know of a library that hides some of the terminal variations from the developer? I looked around, especially at Apache Commons, but couldn't find anything. ---------------------------------------------------------------------- nineteen999 · 2019-11-09 03:28 Did you actually implement telnet option codes, or are you just using plain TCP connections? There's quite a lot of RFC's related to telnet and its assorted features: https://en.wikipedia.org/wiki/Telnet#Related_RFCs There's probably not much point targeting terminals other than VT100/ANSI, since that's the most common on the client side. I had a go a year or two ago in C, and there's quite a lot to getting the basics of telnet right, on both the server or client side. Serial programming is frankly much easier. I did eventually manage to get ZMODEM working over telnet though. The best telnet client I found for Windows that supported CP437 and ZMODEM was ZOC, but it's $. The standard windows console doesn't support ANSI codes/commands. The new terminal that MS built for Windows 10 and can be downloaded seperately apparently does, but won't run on older versions of Windows. For Linux terminals you shouldn't have problems with ANSI color codes, but you might need to change the encoding scheme if it is set to UTF-8 by default in order to display CP437 symbols. For example gnome- terminal defaults to UTF-8, but if you switch it to "Hebrew (IBM862)" it should work.