Кто будет использовать параметр KeepAlive - обратите внимание, что его нужно ставить не единицу, а именно значение в секундах через, которое требуется проверять соединение. Это насколько я могу судить по сниферу.
Вот пример подобного использования (правда к комментах):
http://jimm-fork.googlecode.com/svn/...TcpSocket.java
Если я не прав - поправьте меня.