【发布时间】:2014-05-05 11:48:36
【问题描述】:
我对 Java 比较陌生,而且我一直遇到一个令我沮丧的反复出现的问题。
我在同一个项目文件夹中有两个类文件:“Main.java”和“Client.java”。
'Main.java' 是服务器(我先运行它)。 我尝试运行 Client.java 以连接到服务器。但是,无论我是否尝试解决此问题,它都会不断重新启动“Main.java”。我曾尝试选择“运行方式”和“运行配置..”,但似乎没有任何效果。这发生在我的几个项目中,我似乎无法找到解决方案。
这是我的代码:
1:Main.java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws IOException {
try {
final int PORT = 6677;
ServerSocket server = new ServerSocket(PORT);
System.out.println("Waiting for clients...");
while (true) {
Socket s = server.accept();
System.out.println("Client connected from "
+ s.getLocalAddress().getHostName());
Client chat = new Client(s);
Thread t = new Thread(chat);
t.start();
}
} catch (Exception e) {
System.out.println("An error occured.");
e.printStackTrace();
}
}
}
2:客户端.java
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Client implements Runnable {
private Socket socket;
public Client(Socket s) {
socket = s;
}
@Override
public void run() {
try {
Scanner in = new Scanner(socket.getInputStream());
PrintWriter out = new PrintWriter(socket.getOutputStream());
while (true) {
if (in.hasNext()) {
String input = in.nextLine();
System.out.println("Client Said: " + input);
out.println("You Said: " + input);
out.flush();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
非常感谢任何帮助。
谢谢。
【问题讨论】: