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.