Исключение выбрано в строке 24 во второй раз, когда я что-то набираю (после того, как я набрал имя хоста) - сервер работает правильно. Кодjava Исключение DataOutputStream
import java.io.*;
import java.net.*;
class TCPclient {
public static void main(String[] args) throws Exception {
String hostname, msg;
InetAddress hostaddress;
BufferedReader inFromUser = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Please type host\n");
hostname = inFromUser.readLine(); //I type localhost
hostaddress = InetAddress.getByName(hostname);
Socket cSocket = new Socket(hostaddress, 44444);
String cAddress = cSocket.getLocalSocketAddress().toString();
DataOutputStream outToServer = new DataOutputStream (cSocket.getOutputStream());
while (true)
{
msg = inFromUser.readLine();
System.out.println(msg);
if (msg.equals("exit"))
{
System.out.println("exit");
break;
}
outToServer.writeBytes(cAddress + " said : " + msg + '\n'); //this line throws an exception the second time it runs
}
cSocket.close();
}
}
Я новичок в java, поэтому мне не хватает чего-то очевидного, я думаю. Исключение гласит:
Исключения в потоке "основное" java.net.SocketException: Программное обеспечение вызвало соединение прерывание: сокет запись ошибки в java.net.SocketOutputStream.socketWrite0 (Native Method) в java.net .SocketOutputStream.socketWrite (SocketOutputStream.java:92) на java.net.SocketOutputStream.write (SocketOutputStream.java:115) на java.io.DataOutputStream.writeBytes (DataOutputStream.java:259) в TCPclient.main (TCPClient .java: 52) Java Результат: 1
Сервер:
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception {
String clientSentence;
ServerSocket welcomeSocket = new ServerSocket(44444);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connectionSocket.getInputStream()));
clientSentence = inFromClient.readLine();
System.out.println(clientSentence + "\n");
}
}
}
Связанный: http://stackoverflow.com/questions/2126607/official-reasons-for-software-caused-connection-abort-socket-write-error – BalusC
Спасибо - Я думаю, что в моем случае это должно быть что-то более простое - «сервер» всегда получает первую строку, которую я печатаю, и получаю исключение во втором - это не то, что я смешиваю свои строки или что-то еще –
@ dardana: трудно понять, что происходит, не имея представления о том, что такое сервер. –