The symptoms are quite the same with everyone else. You log in (sometimes you can't and thus gives you the error), the world naturally loads, you are able to explore around but you are unable to chat or build. After 10 seconds you get kicked and the error pops up. Some people like myself could barely play fine during night times but during the day, multiplayer was unplayable. Sometimes, when you travel very fast either by cart or by flying (chunks are loaded faster) you inevitably get kicked out with the exception.
How is it caused?
I won't go into the specifics but a socket exception is generally caused by errors in the TCP. However we will specifically be looking in solving connection resets which are generated by the RST bit sent by the server which you tried to connect to (server resets the connection). This happens either because your internet connection has a high latency or ping or your internet connection is damaged (faulty wires). This causes packet loss and unfortunately Minecraft is highly sensitive to it.
You might think that your internet connection is super fast which obviously describes that Minecraft multiplayer should run fine. Well yes. Minecraft only needs about 50kbps to send chunk information and player data, however even if you have a 100Gbps connection, online performance is usually dependent on the ping. The speed in which data travels from one place to the other. Anti-viruses, firewalls and other applications which slow down your internet can be involved.
Another cause is entirely software related. Different versions of Java may behave differently with each other, in this case we're talking about the Socket class. I'm not entirely sure but I think the Socket class may have incompatibility issues with other versions. Don't quote me on this though. If that's the case it can be fixed simply by updating Java to the latest version. In fact, this is the number one solution that surprisingly worked for most users. There's a how-to-guide below.
Back in Minecraft version 1.3, people have been spamming the internet with this mysterious error. The main cause was related to the Minecraft client not being compatible with the multiplayer servers. Users couldn't get in because the server version was still out of date. So the solution was to downgrade the client. Mojang have also pointed this issue on their website but unfortunately they don't provide much support for this bug (that's why I'm doing it myself).
Firstly make sure your client has the same version as the server you're trying to join. If you don't have the same version you can download MCNostalgia and use it to downgrade your client.
If you don't want to have any incompatibility issues, then I'd encourage you to install the latest Java runtime environment (jre 7.0_05). Before you do, it is recommended that you uninstall other previous versions. If your Operating System runs in 32bit then install the 32bit (x86) version only. If you have 64bit, install both starting with 64bit and then 32bit in this precise order.
Disable un-needed network hosts
Hamachi and Virtual Box could be one of them. They can slow down or interfere with your connection. Access the network control panel and click on "modify network cards" (or something similar). Right click on whichever host you need to disable and then simply click disable.
Disable your firewall
You can access the firewall settings in the control panel and disable it there. If that doesn't work you could try also disabling your router's firewall. If those fail try disabling your anti-virus (these options aren't recommended as hackers can easily infiltrate your computer).
This also works for: Internal exception: java.net.SocketException: Software caused connection abort: socket write error
Who knows... something in the game files might have gone corrupted. A simple fix is to re-install Minecraft completely (make sure you save your worlds first).
Allocating more memory
Some users claimed that allocating more memory to their Minecraft client fixed the exceptions. Odd, I'm not quite sure why it happens to work but I guess it's worth trying.
Here's a how-to-guide on how to add more memory.
Check for bad wires, splitter etc
If you are connected through ADSL then you might want to check if your phone/ADSL splitter is working properly. You can test it by unplugging the splitter and connecting the ethernet cable directly into the phone line.
Try changing your modem by grabbing one off a friend. Also, try a different network or a different PC to see where the problem really is. If you want to know what your ping is click here. A slight packet loss could easily trigger the exception error.
If you are still having issues then before you post you must try all of these suggestions and have done all of the testing. I may not be able to help since my knowledge is quite limited to some extent but I may in the future when I learn a bit more about socket exceptions.
Please post your system specifications including your internet speed/ping. The more information you provide the more I'll be able to help.
If it works, please press the green arrow to the right.
Edited by GoldMiner, 09 April 2013 - 01:11 PM.