我有一个客户端 - 服务器程序的工作代码。请向我解释如何成功使用该程序。据我所知,我首先运行Server.java
Server.java:
public class Server {
public static void main(String[] args) throws IOException {
System.out.println("Welcome to Server side");
BufferedReader in = null;
PrintWriter out= null;
ServerSocket servers = null;
Socket fromclient = null;
// create server socket
try {
servers = new ServerSocket(4444);
} catch (IOException e) {
System.out.println("Couldn't listen to port 4444");
System.exit(-1);
}
try {
System.out.print("Waiting for a client...");
fromclient= servers.accept();
System.out.println("Client connected");
} catch (IOException e) {
System.out.println("Can't accept");
System.exit(-1);
}
in = new BufferedReader(new InputStreamReader(fromclient.getInputStream()));
out = new PrintWriter(fromclient.getOutputStream(),true);
String input;
System.out.println("Wait for messages");
while ((input = in.readLine()) != null) {
if (input.equalsIgnoreCase("exit")) break;
out.println("S ::: "+input);
System.out.println(input);
}
out.close();
in.close();
fromclient.close();
servers.close();
}
}
之后,我运行client.java:
public class client {
public static void main(String[] args) throws IOException {
System.out.println("Welcome to Client side");
Socket fromserver = null;
if (args.length==0) {
System.out.println("use: client hostname");
System.exit(-1);
}
System.out.println("Connecting to... "+args[0]);
fromserver = new Socket(args[0], 4444);
BufferedReader in = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
PrintWriter out = new PrintWriter(fromserver.getOutputStream(),true);
BufferedReader inu = new BufferedReader(new InputStreamReader(System.in));
String fuser,fserver;
while ((fuser = inu.readLine())!=null) {
out.println(fuser);
fserver = in.readLine();
System.out.println(fserver);
if (fuser.equalsIgnoreCase("close")) break;
if (fuser.equalsIgnoreCase("exit")) break;
}
out.close();
in.close();
inu.close();
fromserver.close();
}
}
我当然应该怎么做?如果你看到代码,我应该出去.println(“S :::”+输入)。我怎么能得到它?
答案 0 :(得分:0)
首先运行server.java文件,这将是您的服务器,以接受端口4444处的客户端连接 然后,您可以运行任意数量的client.java程序来开始发送消息。 在客户端程序控制台中键入消息时,消息首先发送到服务器,服务器将消息发送到所有其他客户端程序,依此类推。
你有什么具体的问题吗?
答案 1 :(得分:0)
通常,当业务逻辑/数据存储在集中位置(机器)时,使用客户端服务器程序。
例如,大学服务器和数据中的学生数据由不同课程的教师使用。
您可以使用服务器代码检索/发送数据到数据库等。
请说明您希望通过该计划实现的目标。
答案 2 :(得分:0)
请务必先启动服务器。 从eclipse右键单击Server.java并选择run - >作为Java应用程序。 检查是否已运行服务器线程。查看Console视图时可以看到。如果应用程序已在运行,则会显示红色填充按钮。旁边有一个向下箭头按钮,当你点击它时会显示所有正在运行的应用程序。
因为它使用固定端口4444,所以运行服务器一次很重要。 如果消息“无法侦听端口4444”,那么肯定anothrr服务器线程已经在后台运行。如果服务器没有完全启动,那么在系统上作为服务运行的服务器会阻塞该端口。您可以在代码中更改端口。但是你必须在服务器和客户端这样做。
UPDATE 服务器打印出“等待客户......”如果它成功开始
之后,您可以通过单击Client.java上的右键运行客户端并运行 - >作为java应用程序。
更新
客户端必须以主机名为arigment。为了做到这一点,你必须在eclipse中打开运行对话框并选择客户端应用程序。切换到此对话框中的第二个寄存器,您可以在jvm和应用程序中添加参数。在应用程序参数textfield中键入localhost值127.0.0.1