Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - GUI crashes [Socket]
Forum - Java - GUI crashes [Socket]

Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 8:52
Domenica, 12/02/2012
salve a tutti...Vorrei porvi un problema stranissimo.
dopo aver definito la classe Server .....
Codice sorgente - presumibilmente Java

  1. ServerSocket server=new ServerSocket(port);
  2. public static List<Client> clientlist;
  3. for(;;){
  4.     Socket s=server.accept();
  5.     ServerIOChannel channel=new ServerIOChannel(s);
  6.     channel.start();
  7. }



....la classe ....
Codice sorgente - presumibilmente Java

  1. public class ServerIOChannel implements Runnable(){
  2.     private Socket sock;  
  3.     private ObjectOutputStream oos;
  4.     private ObjectIntputStream ois;  
  5.     private boolean running=false;
  6.     public ServerIOChannel(Socket sock) throws Exception{
  7.          this.sock=sock;
  8.          ois=new ObjectInputStream(this.sock.getInputStream());
  9.          oos=new ObjectOutputStream(this.sock.getOutputStream());
  10.          Thread t=new Thread(this);
  11.          t.start();    
  12.     }
  13.  
  14.      @Override
  15.      public void run(){
  16.           running=true;
  17.           while(running){
  18.                 String receivedline=(String) ois.readObject();
  19.                 if(receivedline.equals("sendsSerializedObject"){
  20.                     oos.writeObject(Server.list);
  21.                     oos.flush();
  22.                 }
  23.           }
  24.      }
  25. }



e le classi  [Client] e [ClientIOChannel implements runnable] ---> allo stesso modo

ho notato che quando il client si logga al server  va tutto bene ma dopo pochi secondi entra in crash si blocca tutta l'interfaccia grafica.. ho provato ad usare dopo la classe DataOutputStream e DataInputStream e non si blocca..come mai ? come potrei risolvere questo problema..ho necessità di usare l ObjectOutputStream per trasferire oggetti...
Questo è l'errore che mi visualizza:

Codice sorgente - presumibilmente Delphi

  1. java.net.SocketException: Connection reset
  2. impossibile leggere e scrivere Connection reset by peer: socket write error
  3.         at java.net.SocketInputStream.read(SocketInputStream.java:189)
  4.         at java.net.SocketInputStream.read(SocketInputStream.java:121)
  5.         at java.io.DataInputStream.read(DataInputStream.java:149)
  6.         at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2283)
  7.         at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2296)
  8.         at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2767)
  9.         at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798)
  10.         at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298)
  11.         at jNewClientProject.ClientIOChannel.<init>(ClientIOChannel.java:38)
  12.         at jNewClientProject.Main.jButtonConnectMouseReleased(Main.java:98)
  13.         at jNewClientProject.Main.access$000(Main.java:13)
  14.         at jNewClientProject.Main$1.mouseReleased(Main.java:46)
  15.         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
  16.         at java.awt.Component.processMouseEvent(Component.java:6505)
  17.         at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  18.         at java.awt.Component.processEvent(Component.java:6270)
  19.         at java.awt.Container.processEvent(Container.java:2229)
  20.         at java.awt.Component.dispatchEventImpl(Component.java:4861)
  21.         at java.awt.Container.dispatchEventImpl(Container.java:2287)
  22.         at java.awt.Component.dispatchEvent(Component.java:4687)
  23.         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
  24.         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
  25.         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
  26.         at java.awt.Container.dispatchEventImpl(Container.java:2273)
  27.         at java.awt.Window.dispatchEventImpl(Window.java:2713)
  28.         at java.awt.Component.dispatchEvent(Component.java:4687)
  29.         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
  30.         at java.awt.EventQueue.access$000(EventQueue.java:101)
  31.         at java.awt.EventQueue$3.run(EventQueue.java:666)
  32.         at java.awt.EventQueue$3.run(EventQueue.java:664)
  33.         at java.security.AccessController.doPrivileged(Native Method)
  34.         at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  35.         at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  36.         at java.awt.EventQueue$4.run(EventQueue.java:680)
  37.         at java.awt.EventQueue$4.run(EventQueue.java:678)
  38.         at java.security.AccessController.doPrivileged(Native Method)
  39.         at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  40.         at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
  41.         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
  42.         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
  43.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
  44.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
  45.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
  46.         at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
  47. java.net.SocketException: Connection reset by peer: socket write error
  48.         at java.net.SocketOutputStream.socketWrite0(Native Method)
  49.         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
  50.         at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
  51.         at java.io.DataOutputStream.write(DataOutputStream.java:107)
  52.         at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1857)
  53.         at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1766)
  54.         at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:246)
  55.         at jNewClientProject.ClientIOChannel.<init>(ClientIOChannel.java:45)
  56.         at jNewClientProject.Main.jButtonConnectMouseReleased(Main.java:98)
  57.         at jNewClientProject.Main.access$000(Main.java:13)
  58.         at jNewClientProject.Main$1.mouseReleased(Main.java:46)
  59.         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
  60.         at java.awt.Component.processMouseEvent(Component.java:6505)
  61.         at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  62.         at java.awt.Component.processEvent(Component.java:6270)
  63.         at java.awt.Container.processEvent(Container.java:2229)
  64.         at java.awt.Component.dispatchEventImpl(Component.java:4861)
  65.         at java.awt.Container.dispatchEventImpl(Container.java:2287)
  66.         at java.awt.Component.dispatchEvent(Component.java:4687)
  67.         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
  68.         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
  69.         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
  70.         at java.awt.Container.dispatchEventImpl(Container.java:2273)
  71.         at java.awt.Window.dispatchEventImpl(Window.java:2713)
  72.         at java.awt.Component.dispatchEvent(Component.java:4687)
  73.         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
  74.         at java.awt.EventQueue.access$000(EventQueue.java:101)
  75.         at java.awt.EventQueue$3.run(EventQueue.java:666)
  76.         at java.awt.EventQueue$3.run(EventQueue.java:664)


fatemi sapere presto.grazie

Ultima modifica effettuata da killer il 12/02/2012 alle 20:10
PM Quote