Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
Often it means that the "other end" of the socket closed its stream. For example, if you see this on a web server, it might mean that a user killed their browswer while in the middle of loading a page. The browser went away, so the server saw the connection being reset (killed) by the peer (the other guy - browser). Can mean other things, but this is the most common I've seen.
It depends on the circumstance. If you have written the code on both sides of the socket and you think you are reading the streams fully and closing them only when you are done, this exception might mean you are loosing data. For this, you need to make sure you read the streams fully (to the end) and don't close EITHER input or output stream from a socket until you are finished with both of them (closing either will close the socket). If you have written a server and the clients are not in your control (for example a browser in somebody's bedroom), then it might mean that the client disconnected.