java网络编程问题,大师们进来帮忙!

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:32:52
为什么不能交互,当客户端输入,服务器端没有反映,输入End服务器端不停的打印null。只有在第一次输入End的时候服务器端正常结束。为什么?
服务端代码
public class SimpleServerSocket {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(9809);
Socket client = server.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
while (true) {
String recStr = reader.readLine();
System.out.println(recStr);
if ("End".equals(recStr))
break;
}
client.close();
System.out.println("Terminate...");
}
}

客户端代码
public class SimpleSocket {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client = new Socket(InetAddress.getLocalHost(),9809);
PrintWriter out = new PrintWriter(client.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(Syst

Socket client = server.accept();
要放在while(true)
{
Socket client = server.accept();
中,你要时刻监控是否有客户端建立连接.
这样后面的代码将无法执行(因为while(true)将一直死循环),你就要用到线程进行双方的通讯工作.

通讯中(线程中)while(true)改为while(inputStr = reader.readLine()!=null)

你这程序要改的地方挺多的