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

IP Adrese i komunikacija

[es] :: Java :: IP Adrese i komunikacija

[ Pregleda: 2432 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

krstak84
student

Član broj: 210622
Poruke: 64
*.dynamic.sbb.rs.



Profil

icon IP Adrese i komunikacija09.03.2009. u 05:45 - pre 184 meseci
Imam problem, ali rekao bih da je resenje jako jednostavno. Zapravo napravio sam malu chat aplikaciju gde klijent i server komuniciraju preko ip adrese. Evo i koda:

Code:


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

abstract class SC {
    public void start(){}
    public void start(String address){}
}

class Client extends SC{

    public void start(String ipad){
        try{
            Socket link = new Socket(ipad, 7904);
            System.out.println("Konekcija uspostavljena");
            Scanner input = new Scanner(link.getInputStream());
            PrintWriter output = new PrintWriter(link.getOutputStream(),true);

            Scanner us = new Scanner(System.in);
            String poruka, odgovor;

            System.out.print("Unesi poruku : ");
            poruka = us.nextLine();
            output.println(poruka);
            odgovor = input.nextLine();
            System.out.println("\nSERVER> "+odgovor);
        }catch(Exception e){

        }
    }
}
class Server extends SC{


    public void start(){
        try{
            ServerSocket soc = new ServerSocket(7904);
            Socket socket = soc.accept();
            Scanner input = new Scanner(socket.getInputStream());
            String inpu = input.nextLine();
            System.out.println(inpu);
            PrintWriter output = new PrintWriter(socket.getOutputStream(),true);
            output.println("Poruka primljena, zatvaram konekciju !");

            socket.close();

        }catch(Exception e){

        }
    }
}
class Glavna {

    public static void main(String[] args){
    System.out.println("Unesi s za servera ili nesto drugo za klijenta");
        Scanner in = new Scanner(System.in);
        String inh = in.nextLine();

        SC chater;

        if(inh.equals("s")){
            chater = new Server();
            chater.start();
        }else{
        System.out.println("Unesi IP adresu ");
        Scanner ip = new Scanner(System.in);
            String ipad = in.nextLine();
        
            chater = new Client();
            chater.start(ipad);
        }
    }
}



Kada dva puta startujem aplikaciju iz komandne linije i jedna mi bude server a druga klijent, i kada unesem sa klijentske strane ip adresu 127.0.0.1, sve radi kako treba. Ali kada se zakacim na net i pogledam onu pravu ip adresu, i ponovo pokusam taj program da startujem i sada unesem pravu ip adresu sa klijentske strane, a ne 127.0.0.1, desava mi se to da klijent ne moze da nadje servera, tj. mene.
Zasto je to tako, zasto u ovom slucaju nece da se ostvari konekcija?
Unapred hvala na odgovorima.
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
*.dial-up.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: IP Adrese i komunikacija09.03.2009. u 06:56 - pre 184 meseci
http://java.sun.com/j2se/1.4.2...api/java/net/ServerSocket.html
ServerSocket(int port, int backlog, InetAddress bindAddr)
Create a server with the specified port, listen backlog, and local IP address to bind to.

znaci moras da bindAddr namestis na taj spoljni IP
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

krstak84
student

Član broj: 210622
Poruke: 64
*.air.tehnicom.net.



Profil

icon Re: IP Adrese i komunikacija09.03.2009. u 19:30 - pre 183 meseci
Prepravio sam kod, i on izgleda ovako :

Code:


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

abstract class SC {
    public void start(){}
    public void start(String address){}
}

class Client extends SC{

    public void start(String ipad){
        try{
            Socket link = new Socket(ipad, 7904);
            System.out.println("Konekcija uspostavljena");
            Scanner input = new Scanner(link.getInputStream());
            PrintWriter output = new PrintWriter(link.getOutputStream(),true);

            Scanner us = new Scanner(System.in);
            String poruka, odgovor;

            System.out.print("Unesi poruku : ");
            poruka = us.nextLine();
            output.println(poruka);
            odgovor = input.nextLine();
            System.out.println("\nSERVER> "+odgovor);
        }catch(Exception e){

        }
    }
}
class Server extends SC{


    public void start(String adresa){
        try{
            ServerSocket soc = new ServerSocket(7904, 2, InetAddress.getByName(adresa));
            Socket socket = soc.accept();
            Scanner input = new Scanner(socket.getInputStream());
            String inpu = input.nextLine();
            System.out.println(inpu);
            PrintWriter output = new PrintWriter(socket.getOutputStream(),true);
            output.println("Poruka primljena, zatvaram konekciju !");

            socket.close();
            System.out.println("Konekciaj zatvorena !");

        }catch(Exception e){

        }
    }
}
class Glavna {

    public static void main(String[] args){
        
        InetAddress inet=null;
        String address="";
        try{

            inet = InetAddress.getLocalHost();
            address = InetAddress.getLocalHost().getHostAddress();
        }catch(Exception e){
            
        }
        System.out.println("Tvoja IP Adresa je " +inet.toString());

        System.out.println("Unesi s za servera ili nesto drugo za klijenta");
        Scanner in = new Scanner(System.in);
        String inh = in.nextLine();

        SC chater;

        if(inh.equals("s")){
            chater = new Server();
            chater.start(address);
        }else{
            System.out.println("Unesi IP adresu ");
            Scanner ip = new Scanner(System.in);
            String ipad = in.nextLine();

            chater = new Client();
            chater.start(ipad);
        }
    }
}



Kada pokrenem program na dva racunara koja su povezana na internet opet nece da radi, ne moze da uspostavi konekciju. Gde bi mogla da bude greska?
 
Odgovor na temu

krstak84
student

Član broj: 210622
Poruke: 64
*.air.tehnicom.net.



Profil

icon Re: IP Adrese i komunikacija12.03.2009. u 15:20 - pre 183 meseci
Zar je moguce da niko ne zna ....... ?
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.adsl-a-1.sezampro.yu.



+7 Profil

icon Re: IP Adrese i komunikacija17.03.2009. u 00:48 - pre 183 meseci
Mozda te zeza Firewall?
 
Odgovor na temu

neco_1986
Nebojša Sofrić
Teslić

Član broj: 69331
Poruke: 14
81.93.82.*



Profil

icon Re: IP Adrese i komunikacija18.03.2009. u 19:23 - pre 183 meseci
Ako sam dobro razumio, zelis da podignes chat server na jednom kompu i da na taj chat ides sa drugog kompa.

Primjer:

Komp na kome ces podignuti server neka ima IP: 192.168.1.1


Komp sa koga pokreces klijenta neka ima IP: 192.168.1.8
U programskom kodu CLIENT moras navesti fiksno IP adresu kompa na kome si podigao chat server i onda kompajlirati taj java fajl kako bi u class fajlu CLIENT imao kompajliranu adresu servera,
u ovom slucaju to je adresa 192.168.1.1



 
Odgovor na temu

krstak84
student

Član broj: 210622
Poruke: 64
*.air.tehnicom.net.



Profil

icon Re: IP Adrese i komunikacija12.04.2009. u 09:08 - pre 182 meseci
Probao sam i to ali nista.
Stvarno mi nije jasno kako to funkcionise.
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.com
Via: [es] mailing liste



+64 Profil

icon Re: IP Adrese i komunikacija12.04.2009. u 16:41 - pre 182 meseci
ovo radi 10000%
provereno
uporedi ovo sa tvojim codom

http://www.ashishmyles.com/tutorials/tcpchat/index.html
 
Odgovor na temu

[es] :: Java :: IP Adrese i komunikacija

[ Pregleda: 2432 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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