Added cleanup_ports method to close all ports when disconnecting for some reason.
Renamed on_close to on_disconnect.
On disconnect, clean up ports (but not being called because I usually disconnect using PyCharm, not a KeyboardInterrupt).
Server can send to client and play a note on the fucking piano omg.
Before splitting MidiConnectionHandler into two classes.
Clean up now sets MidiIn() and MidiOut() instances to None.
Still trying to make keyboard listening non-blocking