我正在尝试同时从两个服务器读取数据的客户端,例如,客户端向两个服务器发送一个字符串,然后将其大写,然后将其发送回客户端。
客户端
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 :(得分:1)
好像你有误解。
您当前的代码只是一个多线程应用程序,其中包含两个名为Connection
的线程,而不是真正的客户端和服务器应用程序。