So I host a server. What used to happen was everyone on the server at random times would get the Timed Out error and get disconnected from the server. I solved this problem by going to Windows Firewall and allowing TCP and UDP ports 25565 in and out. This fixed the Timed Out error for everyone, however at random times only I get disconnect randomly with the error Internal Exception: java.io.IOExeption: An existing connection was forcibly closed by the remote host. A spoiler will show the computer's specs in case anyone was wondering.
RAM: 4GB (3GB allocated to server)
Architecture and OS: 64-bit Windows 8.1 Pro