Pravim klijent-server aplikaciju. Server treba da mi salje objekte koje klijent prima i iscitava podatke iz njega. Medjutim kada pokrenem server on radi sve ok, zatim pokrenem klijenta i on mi se zapuca pri kreiranju ObjectInputStream-a. nije mi jasno zasto, dok server normalno radi ??? Ako neko ima ideju molim za pomoc :)
client:
import java.net.*;
import java.util.*;
import java.io.*;
public class UserClient {
public static final int TCP_PORT = 9000;
public static void main(String[] args) {
String hostname = "localhost";
try {
InetAddress addr = InetAddress.getByName(hostname);
Socket sock = new Socket(addr, TCP_PORT);
ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(sock.getInputStream())); // na ovoj liniji mi se zapuca
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())), true);
BufferedReader unos = new BufferedReader(new InputStreamReader(System.in));
String s = "";
while(true)
{
... // tu radi nesto
}
in.close();
out.close();
sock.close();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
server:
import java.net.ServerSocket;
import java.net.Socket;
public class UserServer {
public static int TCP_IP=9000;
public static void main(String args[])
{
try{
ServerSocket ss = new ServerSocket(TCP_IP);
Biblioteka bb = new Biblioteka();
System.out.println("Server running ...");
while(true)
{
Socket sock = ss.accept();
UserServerThread st= new UserServerThread(sock,bb);
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
UserServerThread:
import java.io.*;
import java.net.*;
import java.util.Vector;
public class UserServerThread extends Thread{
private Socket sock;
private BufferedReader in;
private ObjectOutputStream out;
private boolean signedIn;
private Biblioteka biblioteka;
public UserServerThread(Socket sock, Biblioteka biblioteka)
{
this.sock=sock;
this.biblioteka=biblioteka;
signedIn=false;
System.out.println("New thread created");
try {
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out = new ObjectOutputStream(new BufferedOutputStream(sock.getOutputStream()));
start();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run()
{
try{
System.out.println("thread started");
while(true)
{
...
}
in.close();
out.close();
sock.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}