我試圖通過使用套接字發送一個對象,將通過ObjectOutputStream
持有一些信息。當我打電話給方法Client_Handler(String auth, String user)
併發送它的工作正常的對象,但是當我再次調用它不起作用。我希望能夠使用連接多次發送包含不同數據的對象。ObjectOutput/InputStream只發送和接收對象一次
客戶端:
public void Client_Handler(String auth, String user){
try{
socket2 = new Socket(serverAddress, 8080);
User_Authorization us3 = new User_Authorization();
ObjectOutputStream out2 = new ObjectOutputStream(socket2.getOutputStream());
us3.set_name(user);
us3.set_authorization(auth);
out2.writeUnshared(us3);
}catch(Exception e){
JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE);
}
}
服務器:
public class Conn implements Runnable{
private Socket socket;
public static ServerSocket server ;
public void go(){
Thread r = new Thread(this);
try{
r.start();
}catch(Exception e){
JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE);
}
}
@Override
public void run() {
try{
server = new ServerSocket(8080);
socket = server.accept();
while(true){
Login.User_Authorization us = null;
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
us = (Login.User_Authorization) in.readObject();
System.out.println(us.get_name()+ "he's " +us.get_authorization());
}
}catch(Exception e){JOptionPane.showMessageDialog(null, e, "Error", JOptionPane.ERROR_MESSAGE);}
}
定義「不工作」。 –
當再次執行時,沒有輸出顯示,如果它沒有得到任何輸入。有時它會給我一個EOFException,但不是每次都有,這有點奇怪。 –
http://stackoverflow.com/a/7022301/1490962 –