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

mali problem pri mreznom programiranju...

[es] :: Java :: mali problem pri mreznom programiranju...

[ Pregleda: 3051 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djolesremac
Djokic Vladimir

Član broj: 74653
Poruke: 31
*.proxy.astra-net.com.



Profil

icon mali problem pri mreznom programiranju...24.12.2005. u 15:23 - pre 194 meseci
Radim mali programcic cija je svrha da shvatim kako funkcionisu niti i socketi. Napravio sam mali mrezni casovnik (nista posebno) koji se zasnvia na jednom serveru (koji meri vreme) i vise klijenata koji to izmereno vreme preuzimaju i prikazuju svako u svom JTextField-u.
Server pravi jednu nit koja ocekuje klijente (pomocu metode accept() koju ima klasa SeverSocket).
Klijenta pravim tako sto pomocu InetAddress klase uzimam adresu servera

Code:
InetAddress addr = InetAddress.getByName("localhost");


pa onda pravim socket na sledeci nacin

Code:
Socket sock = new Socket(addr,8000);


Medjutim, kod ove poslednje linije koda dolazi do greske. Ne moze da se napravi taj socket. Dobijam ovakav izuzetak:

java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
at java.net.Socket.connect(Socket.java:507)
at java.net.Socket.connect(Socket.java:457)
at java.net.Socket.<init>(Socket.java:365)
at java.net.Socket.<init>(Socket.java:207)
at clock.WorkingClient.<init>(WorkingClient.java:17)
at clock.Client.<init>(Client.java:37)
at clock.Client.main(Client.java:48)
java.lang.NullPointerException
at clock.WorkingClient.<init>(WorkingClient.java:26)
at clock.Client.<init>(Client.java:37)
at clock.Client.main(Client.java:48)


(Client i WorkingClient su moje klase)

Moram da napomenem da pomocu Java Swinga radim graficki deo, ali kada istu ovu konstrukciju koristim za rad i ispis u konzoli sve radi savrseno!

Da li neko ima ideju u cemu je problem?!!!


"...i grizu me svojim zubima u nameri da me upropaste..."
Radovan III
 
Odgovor na temu

popajce
Popovic Djordje
Bg

Član broj: 23527
Poruke: 33
*.ptt.yu.



Profil

icon Re: mali problem pri mreznom programiranju...24.12.2005. u 18:40 - pre 194 meseci
Postavi jos malo koda
 
Odgovor na temu

djolesremac
Djokic Vladimir

Član broj: 74653
Poruke: 31
*.proxy.astra-net.com.



Profil

icon Re: mali problem pri mreznom programiranju...24.12.2005. u 20:16 - pre 194 meseci
Evo glavnog dela koda (u kojem pretpostavljam da je greska). Postoje jos tri klase, ali one nisu bitne (klijentska i serverska klasa nasledjene iz JFrame-a i klasa koja obradjuje vreme).

Code:


package clock;

import java.io.*;
import java.net.*;

public class ClockListener extends Thread
{
    public final static int PORT = 9000;
    
    public void run()
    {
        try
        {
            ServerSocket ss = new ServerSocket(PORT);
            while(true)
            {
                Socket sock = ss.accept();
                try
                {
                    new ProcessingClient(sock);
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
                finally
                {
                    sock.close();
                }
            }
        }
        catch(IOException ex)
        {
            ex.printStackTrace();
        }
        
    }
}


Code:

package clock;

import java.io.*;
import java.net.*;

public class ProcessingClient extends Thread 
{
    private Socket sock;
    private PrintWriter out;
    private EndCounter ec;
    
    public ProcessingClient(Socket sock) throws IOException
    {
        this.sock = sock;
        out = new PrintWriter(
                new BufferedWriter(
                        new OutputStreamWriter(
                                sock.getOutputStream())),true);
        start();
    }
    
    public void run()
    {
        try
        {
            while(true)
            {
                ec.process();
                out.println(ec.toString());
                Thread.sleep(200);
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            try
            {
                sock.close();
            }
            catch(IOException ex1)
            {
                ex1.printStackTrace();
            }
        }
    }
}


Code:

package clock;

import java.io.*;
import java.net.*;

public class WorkingClient extends Thread 
{
    private Socket sock;
    private BufferedReader in;
    private Client cl;
    
    public WorkingClient(InetAddress addr,Client cl) 
    {
        this.cl = cl;
        try
        {
                        InetAddress  addr = InetAddress.getLocalHost();
            sock = new Socket(addr,ClockListener.PORT); //ovde treba da napravi socket ali se to ne desava!!!!
            in = new BufferedReader(
                    new InputStreamReader(
                            sock.getInputStream()));
            start();
        }
        catch(IOException ex)
        {
            ex.printStackTrace();
        }
    }
    
    public void run()
    {
        try
        {
            while(true)
            {
                String str = in.readLine();
                cl.setText(str);
                Thread.sleep(200);
            }
        }
        catch(IOException ex)
        {
            ex.printStackTrace();
        }
        catch(InterruptedException ex)
        {
            ex.printStackTrace();
        }
    }
}



Nadam se da je sada malo jasnije
Pomozite drugovi...
"...i grizu me svojim zubima u nameri da me upropaste..."
Radovan III
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..njuel-bg.customer.sbb.co.yu.



Profil

icon Re: mali problem pri mreznom programiranju...25.12.2005. u 15:03 - pre 194 meseci
Zasto imas InetAddress addr kao parametar konstruktora , a onda opet deklaraciju prilikom InetAddress.getLocalHost() ??
Mislim da ti je tu negde greska, jer kada kreiras socket uzima addr (parametar) , bar mi se cini da je tako, mrzi me da sada testiram.
 
Odgovor na temu

djolesremac
Djokic Vladimir

Član broj: 74653
Poruke: 31
*.astra-net.com.



Profil

icon Re: mali problem pri mreznom programiranju...25.12.2005. u 15:22 - pre 194 meseci
Nije u tome problem. Tu drugu definiciju sam ubacio dok sam pisao poruku za forum. Ne nalazi se u kodu!
"...i grizu me svojim zubima u nameri da me upropaste..."
Radovan III
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..njuel-bg.customer.sbb.co.yu.



Profil

icon Re: mali problem pri mreznom programiranju...26.12.2005. u 18:58 - pre 194 meseci
Pa,kako da se pronađe greška u kodu, ako kod koji si otkucao u forumu ne odgovara onome što ti javlja grešku.
Možda je najbolje da sve klase zipuješ i okačiš na forum.
 
Odgovor na temu

popajce
Popovic Djordje
Bg

Član broj: 23527
Poruke: 33
*.ptt.yu.



Profil

icon Re: mali problem pri mreznom programiranju...27.12.2005. u 16:37 - pre 193 meseci
InetAddress addr = InetAddress.getLocalHost();
sock = new Socket(addr,ClockListener.PORT); //ovde treba da napravi socket ali se to ne desava!!!!

jesi li probao da pri kreiranju socket-a stavis kao parametre "localhost" umesto addr i 9000 umesto CloskListener.PORT
bilo bi dobro da okacis i te klase nasledjene iz Jframe-a jer kao sto si reko ako radi sve kako treba u konzoli onda mozda je bas greska u tim klasama
 
Odgovor na temu

[es] :: Java :: mali problem pri mreznom programiranju...

[ Pregleda: 3051 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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