Сброс соединения по пиру: ошибка записи в сокет. Что не так с моим кодом Java

Я пытаюсь создать и поддерживать TCP-соединение с хостом из отдельного Java-приложения.

Локальный порт и порт сервера одинаковы = 8999. После подключения я должен отправить сообщение серверу:< STX >username=fred&password=abcd< ETX >.

Код для создания сокета и отправки сообщения выглядит так:

Socket socket = new Socket("mshxml.abcd.com", 8999,   InetAddress.getLocalHost(), 8999);
OutputStream outStream = socket.getOutputStream();
while (socket.isConnected()) {
  try {
       int stx = 2, etx = 3;
       DataOutputStream dout = new DataOutputStream(outStream);
       dout.writeByte(stx);
       dout.writeBytes("username=fred&password=abcd");
       dout.writeByte(etx);
    } catch (Exception e) {
        e.printStackTrace();
}

Но связь не сохраняется. При отладке я нахожу следующую ошибку:

java.net.SocketException: Connection reset by peer: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.DataOutputStream.writeBytes(Unknown Source)
        at com.voya.socketprog.CClient.createConnection(CClient.java:120)
        at com.voya.socketprog.CClient.createSocket(CClient.java:33)
        at com.voya.socketprog.CClient.main(CClient.java:138) Line 120 is: dout.writeBytes("username=fred&password=abcd");

Примечание. Эта же программа успешно запускается при подключении к фиктивному серверу (localhost) на моем компьютере, где я могу получать и отправлять сообщения.

Пожалуйста помоги.

Ответы на вопрос(2)

Ваш ответ на вопрос