Я написал чат, где есть клиент и сервер. И такое дело, когда запускаю сервер на своем компьютере, а затем клиент и мой друг тот же самый клиент запустил на своем компьютере, я могу подключиться к серверу, а друг не может. В чем дело? Вот код сервера
public class Server {
private JFrame frame = new JFrame();
private JTextArea dialogs = new JTextArea();
private static Socket socket;
private static ServerSocket serverSocket;
private static ArrayList<PrintWriter> streams = new ArrayList();
public static void main(String[] args) throws IOException {
Server server = new Server();
}
public Server(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLayout(null);
frame.setLocationRelativeTo(null);
frame.setTitle("Server");
frame.setSize(250, 350);
dialogs.setEditable(false);
dialogs.setLineWrap(true);
dialogs.setWrapStyleWord(true);
dialogs.setBounds(15, 15, 216, 240);
DefaultCaret caret = (DefaultCaret)dialogs.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
JScrollPane scrollPane = new JScrollPane(dialogs);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(15, 15, 216, 240);
frame.add(scrollPane);
frame.setVisible(true);
try {
serverSocket = new ServerSocket(1234);
dialogs.append("Wait client...\n");
while (true) {
Server.socket = Server.serverSocket.accept();
dialogs.append("Client connected\n");
PrintWriter writer = new PrintWriter(socket.getOutputStream());
streams.add(writer);
Thread t = new Thread(new checkMessageFromClient(socket));
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public class checkMessageFromClient implements Runnable{
BufferedReader reader;
checkMessageFromClient(Socket socket) {
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
String newMessage;
try {
while ((newMessage = reader.readLine()) != null) {
java.util.Iterator<PrintWriter> it = streams.iterator();
while (it.hasNext()) {
PrintWriter writer = it.next();
writer.println(newMessage);
writer.flush();
}
}
} catch (Exception ex) {
ex.printStackTrace();
dialogs.append("Client disconnected");
}
}
}
}