Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.261 pregleda

Najnovija ↓

IP Adrese i komunikacija 09.03.2009. u 06:45 · pre 215 meseci #1
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.
Re: IP Adrese i komunikacija 09.03.2009. u 07:56 · pre 215 meseci #2
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
Potpis
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
Re: IP Adrese i komunikacija 09.03.2009. u 20:30 · pre 215 meseci #3
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?
Re: IP Adrese i komunikacija 18.03.2009. u 20:23 · pre 214 meseci #6
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



Re: IP Adrese i komunikacija 12.04.2009. u 10:08 · pre 214 meseci #7
Probao sam i to ali nista.
Stvarno mi nije jasno kako to funkcionise.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme