Witam, mam problem z połączeniem klient-serwer na podstawie klas Socket i ServerSocket. Mianowicie, gdy tworzę serwer (wciskam przycisk "Stwórz serwer") program mi się przywiesza (co jest chyba zrozumiałe bo oczekuje na .accept() od klienta), wtedy próbuję podłączać się z innego komputera (na innym zewnętrznym IP np. kumpla), który się podłącza pod moje IP ale mimo wszystko nie może się połączyć, tak jakby przekracza czas połączenia. Dodam że gdy łączę się do serwera Google przy porcie 80 i wysyłam jakąś wiadomość dostaję powrotną więc chyba to działa. Firewalle wyłączone. Załączam klasy klienta i serwera może coś przeoczyłem?
import java.io.*;
import java.util.*;
import java.net.*;
/**
*
* @author Mateusz
*/
public class Server {
ServerSocket Socket;
Socket Connection;
PrintStream out;
BufferedReader in;
Server(int PORT, Status s) {
try {
Status Status = s;
Socket = new ServerSocket(PORT);
Connection = Socket.accept();
Status.setStatus("Ustanowiono połączenie.");
out = new PrintStream(Connection.getOutputStream());
in = new BufferedReader(new InputStreamReader(Connection.getInputStream()));
} catch(IOException e) {}
}
public PrintStream getOut() {
return out;
}
public BufferedReader getIn() {
return in;
}
}
import java.io.*;
import java.util.*;
import java.net.*;
/**
*
* @author Mateusz
*/
public class Client {
Socket Socket;
PrintStream out;
BufferedReader in;
Client(int PORT, String HOST, Status Status) {
try {
Socket = new Socket();
Socket.connect(new InetSocketAddress(HOST, PORT));
Status.setStatus("Nawiązano połączenie (" + HOST + " : " + PORT + ")");
out = new PrintStream(Socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(Socket.getInputStream()));
} catch(IOException e) {}
}
public PrintStream getOut() {
return out;
}
public BufferedReader getIn() {
return in;
}
}