Я пытаюсь сделать клиент, который считывает данные с двух серверов одновременно, например, клиент отправляет строку на оба сервера, которые используют его для заглавной записи, а затем отправляет обратно клиенту.Java-клиент, работающий с двумя серверами
Client Side
public class Client {
public static void main(String[] args) {
Connection c1 = new Connection("localhost", 2345, "example one");
c1.start();
Connection c2 = new Connection("localhost", 2346, "example two");
c2.start();
стороне сервера
public class Connection implements Runnable {
private String host;
private int port;
private PrintWriter os;
private volatile boolean running = false;
private String stringToCap;
public Connection(String host, int port, String stringToCap) {
this.host = host;
this.port = port;
this.stringToCap = stringToCap;
}
public void start() {
try {
this.os = new PrintWriter(new Socket(host, port).getOutputStream());
} catch (IOException e) {
return;
}
running = true;
new Thread(this).start();
@Override
public void run() {
while(running) {
stringToCap.toUpperCase();
os.print(stringToCap);
}}
Но я не могу показаться, чтобы получить сервер для печати назад Теперь капитализированное строку клиенту. Когда я пытаюсь сделать это, я ничего не получаю, нужен ли мне также основной метод на стороне сервера?
Возможно, вы получаете исключение IOException внутри вашей попытки catch. Попробуйте напечатать ошибку через e.printStackTrace(). – Aaron
У вас нет сервера. Класс Connection является клиентом и подключается к существующему серверу. Где ваш сервер? Подробнее о программировании сокетов читайте здесь: https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html – Aaron