Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

slanje objekata preko socketa

[es] :: Java :: slanje objekata preko socketa

[ Pregleda: 4323 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ana
Ana Balevic
LIACS & ACE
Amsterdam

Član broj: 5669
Poruke: 170
*.yubc.net

Jabber: ana@elitesecurity.org
Sajt: tesla.rcub.bg.ac.rs/~tauc..


Profil

icon slanje objekata preko socketa13.08.2003. u 22:14 - pre 223 meseci
radim neki domaci za faks i trebalo bi da napravim komunikaciju izmedju 2 racunara koristeci sockete.
E sad dok sam imala samo Stringove formirala sam
BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
i slanje i prijem je radilo super sa String s=(String) in.readLine(); i out.println(s)

medjutim meni treba da saljem objekte.Napravila sam klasu koja implementira interfejs Serializable,
ali imam problem da formiram BufferedReader i PrintWriter .
Kako to da uradim da bi mi radilo slanje/prijem objekata?
koje su u tom slucaju komande za ispis i citanje?

prilicno mi je hitno,pa hvala unapred na odgovoru :)
Ana

p.s radim u j2sdk1.4.0_01
 
Odgovor na temu

t3chX
Srđan Rajčević
Thessaloniki

Član broj: 2509
Poruke: 101
*.teol.net

Jabber: techx@elitesecurity.org


Profil

icon Re: slanje objekata preko socketa14.08.2003. u 00:40 - pre 223 meseci
Citat:
String s=(String) in.readLine(); i out.println(s)


Code:
String s
- kljucna rec ... Kreiras objekat tipa String zar ne ?
If you want to get anywhere in your life, don't break the rules - make them !
 
Odgovor na temu

Last Man Standing
Misha Kostich
Chicago

Član broj: 3775
Poruke: 101
*.client.attbi.com



+1 Profil

icon Re: slanje objekata preko socketa14.08.2003. u 02:54 - pre 223 meseci
Za objekte opsteg tipa se koriste klase ObjectInputStream i ObjectOutputStream. Metodi su readObject() i writeObject(Object o). Klase koje se zavrsavaju sa writer i reader rade sa tekstualnim podacima i ne mozes da ih koristis, jer se za serijalizaciju objekata koristi binarni stream. Nesto kao:

ObjectOutputStream os = new ObjectOutputStream(socket.getOutputStream());
os.writeObject(tvojObjekt);

ObjectInputStream is = new ObjectInputStream(socket.getInputStream());
Object o = is.readObject();

Mozes da stavis i Buffered wrapper za Input/OutputStream. Pogledaj malo java.io paket za vise detalja.
A computer once beat me at chess, but it was no match for me at kick boxing.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: slanje objekata preko socketa14.08.2003. u 12:39 - pre 223 meseci
Ana, ne uzimaj moje reci zdravo za gotovo jer sam JAVA pocetnik (programiram u JAVI ne vise od 2 meseca)... Kljucna stvar koja je tebi vazna da bi odradila posao je SERIJALIZACIJA koja je u JAVI odradjena fantasticno. Da bi se lako i jednostavno objekat "tumbao" okolo najlakse je da se isti SERIJALIZUJE pre slanja i onda DESERIJALIZUJE negde gde treba da se taj objekat "cita"...

Evo jednog zanimljivog teksta koji ce ti pomoci da steknes sliku kako to sve treba da izgleda: http://www.javaworld.com/javaworld/javatips/jw-javatip40.html .

Stvar se bazira na onome sto je rekao Last Man Standing.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

ana
Ana Balevic
LIACS & ACE
Amsterdam

Član broj: 5669
Poruke: 170
*.yubc.net

Jabber: ana@elitesecurity.org
Sajt: tesla.rcub.bg.ac.rs/~tauc..


Profil

icon Re: slanje objekata preko socketa14.08.2003. u 14:34 - pre 223 meseci
verovali ili ne,problem je bio u tome sto sam inicijalizovala ObjectInputStream pre ObjectOutputStream (?!) -kad sam promenila redosled ,proradilo je!

jos jedno pitanjce, treba mi da napravim instancu klase Date ,ali koju cu inicjalizovati sa nekim mojim (ne trenutnim)vrednostima mesec,dan,godina,sati i minuti.Da li neko zna kako se to radi u javi 1.4 ,jer koliko sam videla postojao je takav konstruktor ,ali je on depricated i upucuje se na koriscenje Calendar, gledala sam java docs,i nisam ukapirala kako?

Ana
 
Odgovor na temu

tweeester
Ivan Arandjelovic
bg yu

Član broj: 724
Poruke: 882
*.kc.vicert.com

Sajt: www.javasvet.net


Profil

icon Re: slanje objekata preko socketa14.08.2003. u 15:56 - pre 223 meseci
Kreiraj GregorianCalendar, setuj mu zeljeni datum sa calendar.set(Calendar.YEAR,2000) ... etc. i onda iz njega uzmi Date sa calendar.getTime()

btw: pazi, Calendar klase u jdk 1.4 imaju neke cudne bagove koji su priznati ali izgleda kao da ne planiraju da to srede ...
<< tko leti vrijedi, tko ne leti ne vrijedi >>
 
Odgovor na temu

ana
Ana Balevic
LIACS & ACE
Amsterdam

Član broj: 5669
Poruke: 170
*.yubc.net

Jabber: ana@elitesecurity.org
Sajt: tesla.rcub.bg.ac.rs/~tauc..


Profil

icon Re: slanje objekata preko socketa16.08.2003. u 00:36 - pre 223 meseci
ovo sa GregorianCalendar je upalilo,napravila sam dosta toga,medjutim sad mi se desava nesto krajnje neverovatno- pravila sam neku klasu ListaParova koja ima privatno polje tipa HashMap ,u koje ubacujem sifre parova i Par-ove,e sad posto je domaci neka pojednostavljena verzija kladionice,meni svaki par treba da ima vreme utakmice. a da bi zatvorila tiket na uplatnom mestu,ja prvo moram da izbacim parove cije su utakmice vec pocele, i sad pogledajte ovo <nadam se da me niko nece ubiti ,ili nesto sl,zbog ovoliko teksta :>
Code:

import java.util.*;
public class ListaParova {
   private HashMap parovi;
   ListaParova(){ parovi=new HashMap(); }
 ...
void brisiPar(String sifP){synchronized(parovi) {parovi.remove(sifP);}}
void ukloniLose(Date vremeUplate) {
  synchronized(parovi) {
    for (Iterator i=parovi.entrySet().iterator(); i.hasNext(); ) {
                    Map.Entry e = (Map.Entry) i.next();
                     Par tempPar=(Par) e.getValue();
                    String sifP=(String) e.getKey();
                    System.out.println(sifP + ": " +tempPar);
                    if (tempPar.getVremeUtakmice().before(vremeUplate)) 
                            //brisiPar(sifP);
                            parovi.remove(sifP); 
            }
        }
    }
    
public void printAll() {  synchronized(parovi) {
    for (Iterator i=parovi.entrySet().iterator(); i.hasNext(); ) {
    Map.Entry e = (Map.Entry) i.next();
        System.out.println(e.getKey() + " : " + e.getValue()); }}}
public static void main(String[] args) {
        ListaParova ps=new ListaParova();
        Par prvi=new Par("Juventus","Lacio",2003,4,20,17,20,1.65,4.5,3.25);
        ps.ubaci(prvi);  ps.dohvati("PAR1");
        Par drugi=new Par("Madrid","Crvena Zvezda",2003,9,15,15,30,1.7,2.3,4.0);
        ps.ubaci(drugi);  ps.dohvati("PAR2");
        Par treci=new Par("Hamarbi","Landskrona",2003,8,15,20,20,1.35,4.0,3.0);
        ps.ubaci(treci);  ps.dohvati("PAR3");
        ps.printAll();
        Date trenutnoVreme=new Date(); 
        ps.ukloniLose(trenutnoVreme);
        ps.printAll();
    }
}

e sad ovo se kompajlira oki ako treci par stavim da utakmica pocinje npr 17.08.2003 sve radi super,obrise mi samo prvi par i fino..ali ako npr.stavim da treci par poinje danas 15.08.2003 onda dobijam ConccurentModificationException (?!) na metodi ukloniLose...
da li neko ima ideju o cemu se radi, a inace malo mi je sumnjiva i ova ukloniLose
da li smem da iteriram kroz kolekciju i da brisem one Par-ove koji mi ne odgovaraju u jednom ovakvom bloku,ili ipak treba nesto izmeniti?

 
Odgovor na temu

Last Man Standing
Misha Kostich
Chicago

Član broj: 3775
Poruke: 101
*.client.attbi.com



+1 Profil

icon Re: slanje objekata preko socketa16.08.2003. u 14:13 - pre 222 meseci
Nije bas toliko neverovatno:

-----------------------------------
public class ConcurrentModificationException
extends RuntimeException
This exception may be thrown by methods that have detected concurrent modification of an object when such modification is not permissible.

...bla bla truc...

Note that this exception does not always indicate that an object has been concurrently modified by a different thread. If a single thread issues a sequence of method invocations that violates the contract of an object, the object may throw this exception. For example, if a thread modifies a collection directly while it is iterating over the collection with a fail-fast iterator, the iterator will thow this exception.
--------------------

Dakle, ne mozes istovremeno iteratorom da setas kroz kolekciju i da brises elemente (bar ne ovako). Napravi praznu kolekciju pa u nju prebaci one elemente koji su dobri ili probaj da smislis nesto drugo. Na primer da iskoristis Collection.toArray() za kljuceve (dobijes ih sa Map.keySet()) i da onda indexom ides kroz taj niz kljuceva, za svaki uradis get iz mape, proveris da li je element los i onda ga obrises ako treba. Pogledaj malo collections API. :)

Uzgred, zasto koristis Map a ne listu ili Set?

A computer once beat me at chess, but it was no match for me at kick boxing.
 
Odgovor na temu

ana
Ana Balevic
LIACS & ACE
Amsterdam

Član broj: 5669
Poruke: 170
*.yubc.net

Jabber: ana@elitesecurity.org
Sajt: tesla.rcub.bg.ac.rs/~tauc..


Profil

icon Re: slanje objekata preko socketa21.08.2003. u 12:47 - pre 222 meseci
poruka ConcurrentModificationException mi je bila jako cudna,bas zato sto nisam imala nikakve Thread-ove u igri,ali sam naletela na resenje negde na interenetu,ceo stos je bio da uklanjam elemenata iz Mape sa iteratorovim remove :) jedan jedini red...
btw, odakle si ovo parce teksta izvadio,deluje kao dobar tekst?
a inace Hashmap ,jer kad sam kretala nisam bas bila upoznata ni sa kaldionicama ni sa javom,a neko od upucenijih ljudi na faksu je preporucio HashMap,mada meni iz ove perspektive sasvim dovoljan izgleda i HashSet...
 
Odgovor na temu

Last Man Standing
Misha Kostich
Chicago

Član broj: 3775
Poruke: 101
*.client.attbi.com



+1 Profil

icon Re: slanje objekata preko socketa22.08.2003. u 05:13 - pre 222 meseci
Text je iz dokumentacije za JDK. Dobro je ovo za iterator :)
Eto gde J2EE odvede coveka...



A computer once beat me at chess, but it was no match for me at kick boxing.
 
Odgovor na temu

[es] :: Java :: slanje objekata preko socketa

[ Pregleda: 4323 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.