Basic directory layout.
Created first inklings of "fuku chat". Inoperable. Committing for possible necessary reversion.
[possibly] operable version of chat. Saving first pre-run for posterity.
Multithreaded mucker() which creates a socket inside a thread. WE'RE GETTING SOMEWHERE, GENTLEMEN.
MWUAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH

Multithreading inside threads. Fucking. BITCHES.

sockets.py now has a send loop for communicating with server
server now exits properly on HANDSHAKE[3] and doesn't fucking panic
socketserver.py instantiates reciever() inside mucker() which now can *stop and restart* which is something I didn't even know I had the magic powers to do.
inklings of using a key, just have mucked it up so far
server has a receiver() function for receiving client data!

I don't even know, it's now daylight
Holy shit chat works.

CHAT WORKS

DATA IS TRANSFERRED
Chat works mostly as intended as per specification.

:fukuimdone: does not entirely exit at this time.
added :fuku: verification on each chatline
Deleted branches because I am too stupid to figure out how they work.

Slight edit of sockets.py for testing derpchatserver.py.

Creation of derpchatclient and derpchatserver for the re-write of sockets.py and socketserver.py. See message 1 as to why.
derpchat: added debug support

sockets: eliminated as msg commands since they were pissing off exactly everything
Presumably chat will do the things.

Removed KEYCODE since that was dumb.
Re-added stringline key check and removal.
DEBUG mode expanded to include socket and thread checking.
Keeps track of open sockets in ALL_SOCKETS array/list.
Added sender() function that is presumably mult-threaded.
Added more DEBUG to server.
Changed sockets.py to be more compatible with derpchatserver.
Added *even more* DEBUG splits in serverclient. Support for timedate.timedate.utcnow() for friggin millisecond accuracy in attempting to figure out what the hell is continually going wrong.
Cannot figure out why sockets.py is sending fucking nonsense data to the chat server. Cannot iterate over a list of sockets (surprise?)
Added datetime.datetime.utcnow() support to sockets.py, because why not?
Got rid of KEYCODE on derpchatclient.py though I admit I don't really understand why since removing it seems to cause more headaches than not.
Lots more documentation.
More elegant debug calls.
Fixed a few errors coming from attempting to iterate over ALL_SOCKETS
PEP8 compatible now that I have, astoundingly, added double-returns between functions, and a space after every #.  PyCharm is considerably happier for this fact.
WORKING VERSION

Turns out you need to, like, pass the same connection to the array as the function if you want them both to communicate down the same channel.
It also helps if you leave the socket open client-side. :|
Added check for :fukuimdone: properly, as it has never been done before because am stupid.
Added Screen Name prompt for sockets.py to help differentiate clients.
Wrote the entirety of derpchatclient.py to the point where it has debug and works.
Cleaned up the debug functions in derpchatserver.py
Fixed formatting issue in sockets.py [still useful!]
Moved some crap around trying to handle DISCONNECT errors. Well, it handles them and continues to work, but I have not the faintest bloody idea *how* it does it given that it's still pinging socket.error inside the iterative loop for sending messages.
More debug bullshit.
Moved deletesocket() call upwards so it gets invoked when socket is longer open. This makes this feature actually work now.
Almost to a stable version!