Java客户端使用两个服务器

时间:2016-09-06 01:19:35

标签: java server client

我正在尝试同时从两个服务器读取数据的客户端,例如,客户端向两个服务器发送一个字符串,然后将其大写,然后将其发送回客户端。

客户端

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);


        }}

但我似乎无法让服务器将现在大写的字符串打印回客户端。当我尝试上述操作时,我什么也得不到,我是否也需要服务器端的主方法?

1 个答案:

答案 0 :(得分:1)

好像你有误解。

您当前的代码只是一个多线程应用程序,其中包含两个名为Connection的线程,而不是真正的客户端和服务器应用程序。

请参阅Java Tutorial, Custom Networking section