2016-09-06 1 views
0

Я пытаюсь сделать клиент, который считывает данные с двух серверов одновременно, например, клиент отправляет строку на оба сервера, которые используют его для заглавной записи, а затем отправляет обратно клиенту.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); 


     }} 

Но я не могу показаться, чтобы получить сервер для печати назад Теперь капитализированное строку клиенту. Когда я пытаюсь сделать это, я ничего не получаю, нужен ли мне также основной метод на стороне сервера?

+0

Возможно, вы получаете исключение IOException внутри вашей попытки catch. Попробуйте напечатать ошибку через e.printStackTrace(). – Aaron

+2

У вас нет сервера. Класс Connection является клиентом и подключается к существующему серверу. Где ваш сервер? Подробнее о программировании сокетов читайте здесь: https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html – Aaron

ответ

1

Похоже, у вас есть заблуждение.

Ваш текущий код - это просто многопоточное приложение с 2 потоками, которое называется Connection, а не истинное клиентское и серверное приложение.

Обратитесь к Java Tutorial, Custom Networking section.