powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / передача об'ектов от сервера клиенту
10 сообщений из 10, страница 1 из 1
передача об'ектов от сервера клиенту
    #34173506
Smak_86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
необходимо передавать обьекты от сервера клиенту (1)
и строки от клиента к серверу(2)
я это делаю так:
1
public class MyServer {
...
static synchronized void out(char temp,int n){
try{
Socket s;
ObjectOutputStream p;
t.remake(temp,n);//
s = (Socket) list.get(0);
p=new ObjectOutputStream(s.getOutputStream());
p.writeObject(t.tabl);
p.flush();
}
catch(IOException e){
e.printStackTrace();
}
}
...
}
public class ThreadedHandler implements Runnable{
...
public void run(){
try{
char t='w';
try{
while(true){
try {
MyServer.out(t,counter);
InputStream inStream = incoming.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
String temp = in.readLine();
t=temp.charAt(0);
}catch (IOException e1) {
e1.printStackTrace();
}

}
}
finally{
incoming.close();
}
}
catch (IOException e){
e.printStackTrace();
}
}
...
}
2
class Client extends Thread{
public void run(){
try {
while(true){
ObjectInputStream p=new ObjectInputStream(ss.getInputStream());
try{
tableSnake.tabl=(tab)p.readObject();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
play.repaint();
try{
sleep(50);
}catch (InterruptedException e) {
e.printStackTrace();
}
PrintWriter out=new PrintWriter(ss.getOutputStream(),true);
out.println("w");


}
}
catch (IOException e) {
e.printStackTrace();
}
}
}


на что получаю: java.lang.ArrayIndexOutOfBoundsException на сервере
и java.io.EOFException на клиенте
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34187272
Smak_86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с этим разобрался =)
но есть новый трабл =( :
при окончании работы клиента вылетает КУЧА java.net.SocketException и занимается ВСЯ память.
Кто-нибудь может помочь в борьбе за память?

ненавижу TMS320C6000 и VAX-11
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34187592
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smak_86при окончании работы клиента вылетает КУЧА java.net.SocketException и занимается ВСЯ память.
Может его просто следует закрыть
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34187702
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smak_86ненавижу TMS320C6000 и VAX-11

Обычно мы ненавидим то, чего не понимаем. Может, попытаться разобраться наконец?...
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34189183
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.Голованов Smak_86ненавижу TMS320C6000 и VAX-11

Обычно мы ненавидим то, чего не понимаем. Может, попытаться разобраться наконец?...
что вы мне посоветуете если, я не понимаю что такое TMS320C6000 и VAX-11, но разбираться не хочу, а просто интересно чой то ? вакс это вроде комп такой да?
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34191905
anton_evane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй RMI и сериализуй обьект
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34194310
Smak_86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LINUXER Smak_86при окончании работы клиента вылетает КУЧА java.net.SocketException и занимается ВСЯ память.
Может его просто следует закрыть
да следует, но я не могу понять, в какой момент его закрывать
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34194323
Smak_86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expp М.Голованов Smak_86ненавижу TMS320C6000 и VAX-11

Обычно мы ненавидим то, чего не понимаем. Может, попытаться разобраться наконец?...
что вы мне посоветуете если, я не понимаю что такое TMS320C6000 и VAX-11, но разбираться не хочу, а просто интересно чой то ? вакс это вроде комп такой да?
могу тебе кинуть учебные методички по ним, если хочешь =((
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34196096
foo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foo
Гость
Честно говоря, не очень понял в чем проблема. Попробовал воспроизвести - не получилось :(

вот мой пример:

сервер

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
 import  java.io.ObjectInputStream;
 import  java.io.ObjectOutputStream;
 import  java.net.Socket;
 import  java.net.ServerSocket;

 public   class  Server {

     public   static   void  main(String[] args) {
         new  Server().start();
    }

     public   void  start() {
        ServerSocket ss =  null ;
         try  {
            ss =  new  ServerSocket( 65000 );
        }  catch  (Exception e) {
            e.printStackTrace();
            System.exit( 0 );
        }
         while  (true) {
             try  {
                 new  ServerTask(ss.accept()).start();
            }  catch  (Exception e) {
                e.printStackTrace();
                System.exit( 0 );
            }
        }
    }

     private   class  ServerTask  implements  Runnable {

         private  Socket s;
         private  Thread self;

         public  ServerTask(Socket s) {
             this .s = s;
            self =  new  Thread( this );
        }

         public   void  start() {
             this .self.start();
        }

         public   void  run() {
             try  {
                ObjectInputStream ois =  new  ObjectInputStream(s.getInputStream());
                CObject obj = (CObject) ois.readObject();
                System.out.println("Thread " +  this .self.getName() + ": a = " + obj.getA());
                obj =  new  CObject(obj.getA() *  2 );
                ObjectOutputStream oos =  new  ObjectOutputStream(s.getOutputStream());
                oos.writeObject(obj);
                oos.flush();
                s.close();
            }  catch  (Exception e) {
                e.printStackTrace();
                 if  (!s.isClosed()) {
                     try  {
                        s.close();
                    }  catch  (Exception ee) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}


клиент:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 import  java.net.Socket;
 import  java.net.InetSocketAddress;
 import  java.io.ObjectInputStream;
 import  java.io.ObjectOutputStream;

 public   class  Client {

     public   static   void  main(String[] args)  throws  Exception {
        Socket s =  new  Socket();
        s.connect( new  InetSocketAddress("localhost",  65000 ));
        ObjectOutputStream oos =  new  ObjectOutputStream(s.getOutputStream());

        oos.writeObject( new  CObject( 10 ));
        oos.flush();
        ObjectInputStream ois =  new  ObjectInputStream(s.getInputStream());
        CObject obj = (CObject) ois.readObject();
        System.out.println("a=" + obj.getA());
    }
}


Объект, корорый передаем. Сюда можно запихнуть и строки и другие объекты, можно реализовать свой протокол сериализации и т.д.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 import  java.io.Serializable;

 public   class  CObject  implements  Serializable {

     private   int  a;

     public  CObject( int  a) {
         this .a = a;
    }

     public   int  getA() {
         return  a;
    }
}

вот. к качеству кода просьба не придираться :)

Если это сможет помочь - буду рад.
...
Рейтинг: 0 / 0
передача об'ектов от сервера клиенту
    #34198476
Smak_86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем.
основное, что понял, пока разобирался, нужно:
1. спать
2. проверять выделение памяти под объекты
3. закрывать сокеты
ненавижу TMS320C6000 и VAX-11
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / передача об'ектов от сервера клиенту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]