我有用Java编写的服务器代码和客户端代码。但问题是如何在服务器运行时在Eclipse的DIFFERENT控制台窗口上运行多个客户端?感谢帮忙! (解决!!)
UPDATE ** 另一个问题:我将创建一个新问题
服务器:
import java.net.*;
import java.io.*;
public class ATMServer {
private static int connectionPort = 8989;
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
try {
serverSocket = new ServerSocket(connectionPort);
} catch (IOException e) {
System.err.println("Could not listen on port: " + connectionPort);
System.exit(1);
}
System.out.println("Bank started listening on port: " + connectionPort);
while (listening)
new ATMServerThread(serverSocket.accept()).start();
serverSocket.close();
}
}
ServerThread:
import java.io.*;
import java.net.*;
public class ATMServerThread extends Thread {
private Socket socket = null;
private BufferedReader in;
PrintWriter out;
public ATMServerThread(Socket socket) {
super("ATMServerThread");
this.socket = socket;
}
public void run(){
}
}
}
客户:( **更新)
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ATMClient {
private static int connectionPort = 8989;
public static void main(String[] args) throws IOException {
Socket ATMSocket = null;
PrintWriter out = null;
BufferedReader in = null;
String adress = "";
try {
adress = "127.0.0.1";
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Missing argument ip-adress");
System.exit(1);
}
try {
ATMSocket = new Socket(adress, connectionPort);
out = new PrintWriter(ATMSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader
(ATMSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Unknown host: " +adress);
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't open connection to " + adress);
System.exit(1);
}
out.close();
in.close();
ATMSocket.close();
}
答案 0 :(得分:1)
您可以从Eclipse运行任意数量的套接字客户端,前提是您将用户定义的ip / port信息作为命令参数从main()下的程序参数选项卡中的程序参数选项卡中传递给Eclipse中的该程序而不是使用一些硬连线值IP /端口。
要创建多个控制台视图(通过单独的Console View选项卡而不是单击每个实例),您需要在Eclipse Debug View模式下为每个目标实例创建一个新的控制台视图;要实现这一点,您需要选择“新控制台视图”(从带有加号的图标按钮到控制台视图的最右侧)并指定要从每个新控制台查看的程序实例。
另一个问题:如果我必须在ServerThread上更改某些内容,例如添加标题,是否可以在不重新启动服务器的情况下执行该操作?
哪个头衔?我没有看到ServerThread代码片段的任何GUI代码。您是指控制台视图选项卡的标题名称吗?