Java 我的服务器和客户端套接字程序只是挂起,没有打印任何内容

Java 我的服务器和客户端套接字程序只是挂起,没有打印任何内容,java,sockets,Java,Sockets,为什么没有打印到控制台上 我有一个服务器套接字,它为每个客户机启动一个新线程。它从客户端读取一行并输出它,然后发送自己的响应。这是在客户端打印的。代码如下: 客户端代码: import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class Client { public static void m

为什么没有打印到控制台上

我有一个服务器套接字,它为每个客户机启动一个新线程。它从客户端读取一行并输出它,然后发送自己的响应。这是在客户端打印的。代码如下:

客户端代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        PrintWriter out = null;
        BufferedReader in = null;
        Socket echoSocket=null;
        try {
            echoSocket = new Socket("localhost", 8999);
            out = new PrintWriter(echoSocket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
            for(int i=0;i<20;i++) {
                out.print("Sending to Server"+i);
                System.out.println("Received from Server"+in.readLine());
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                try {
                    in.close();
                } finally {
                    try {
                        out.close();
                    } finally {
                        echoSocket.close();
                    }
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
}    
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.io.PrintWriter;
导入java.net.Socket;
公共类客户端{
公共静态void main(字符串[]args){
PrintWriter out=null;
BufferedReader in=null;
套接字echoSocket=null;
试一试{
echoSocket=新套接字(“本地主机”,8999);
out=新的PrintWriter(echoSocket.getOutputStream(),true);
in=new BufferedReader(新的InputStreamReader(echoSocket.getInputStream());

对于(int i=0;iWell for one,您可能应该
println
而不是
print
在您的编写器上(在客户端和服务器中)。

对于one,您可能应该
println
而不是
print
在您的编写器上(在客户端和服务器中).

谢谢..否则BufferedReader将永远无法获取整行..:)谢谢..否则BufferedReader将永远无法获取整行...)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Callable;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Server {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            final ServerSocket server = new ServerSocket(8999);
            final ExecutorService threadPool = Executors.newFixedThreadPool(2);
            while (true) {
                try {
                    final Socket sock = server.accept();
                    threadPool.submit(new Callable<Void>() {
                        @Override
                        public Void call() throws Exception {
                            BufferedReader br = null;
                            PrintWriter out = null;
                            try {
                                br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                                out = new PrintWriter(sock.getOutputStream(), true);
                                for (int i = 0; i < 20; i++) {
                                    String readLine = br.readLine();
                                    System.out.println(readLine);
                                    out.print(readLine + "response");
                                }
                            } finally {
                                try {
                                    br.close();
                                } finally {
                                    try {
                                        out.close();
                                    } finally {
                                        sock.close();
                                    }
                                }
                            }
                            return null;
                        }
                    });
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}