java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at BookStoreServer$ConnectionHandler.run(BookStoreServer.java:72)
Here are my classes BookStoreServer and Client:
public class Client{
public static void main(String args[]){
try{
final int PORT = 10000;
Socket newClientSocket = new Socket("78.60.65.181", PORT);
ObjectOutputStream out = new ObjectOutputStream(newClientSocket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(newClientSocket.getInputStream());
String fromServer, fromUser;
String[] authors = {"a", "b"};
Book book1 = new Book("1", authors, "2000");
Package userPackage = new Package("bookRegistration");
Object[] objectsToSend = {};
objectsToSend[0] = book1;
userPackage.setObjects(objectsToSend);
out.writeObject(userPackage);
out.flush();
out.close();
in.close();
newClientSocket.close();
} catch (UnknownHostException e) {
System.out.println("Host was not found");
System.out.println("2");
System.exit(1);
} catch (IOException e) {
System.out.println("Failed to get I/O");
System.out.println("3");
e.printStackTrace();
System.exit(1);
}
}
}
public class BookStoreServer{
static final int PORT = 10000;
static final int MAX_QUEUE_LENGTH = 5;
static BooksList booksList = new BooksList();
public static void main(String args[]) throws UnknownHostException{
ServerSocket serverSocket = null;
Socket clientSocket = null;
//System.out.println("loc: " + InetAddress.getLocalHost());
try{
serverSocket = new ServerSocket(PORT, MAX_QUEUE_LENGTH, InetAddress.getLocalHost());
serverSocket.setReuseAddress(true);
System.out.println("Successfully conected");
while (true){
clientSocket = serverSocket.accept();
//System.out.println(clientSocket);
new ConnectionHandler(clientSocket, booksList);
}
} catch (Exception e) {
/*System.out.println("Error: " + e.getMessage());
System.out.println("Server shut down");
System.exit(1);*/
}
}
static class ConnectionHandler extends Thread{
ObjectOutputStream out;
ObjectInputStream in;
Socket clientSocket;
BooksList booksListReference;
public ConnectionHandler(Socket clientSocket, BooksList booksListReference){
this.clientSocket = clientSocket;
this.booksListReference = booksListReference;
start();
}
void registerBook(Book book){
booksListReference.insertBook(book);
try {
out.close();
} catch (IOException e) {
System.out.println("Error");
System.exit(1);
}
}
public void run(){
try {
out = new ObjectOutputStream(clientSocket.getOutputStream());
in = new ObjectInputStream(clientSocket.getInputStream());
Package userPackage = (Package) in.readObject();
String packageType = userPackage.getType();
if (packageType.equals("bookRegistration")){
Object[] receivedObjects = userPackage.getObjects();
Book book = (Book) receivedObjects[0];
registerBook(book);
System.out.println("Books count: " + booksListReference.getBooksCount());
}
} catch (IOException e) {
System.out.println("Failed to get I/O");
System.out.println("5");
e.printStackTrace();
System.exit(1);
} catch (ClassNotFoundException e){
System.out.println("Class not found");
System.exit(1);
} finally {
try {
clientSocket.close();
}
catch (IOException e) {
System.out.println("Error");
System.exit(1);
}
}
}
}
}
Looking forward for some help


Sign In
Create Account


Back to top









