Java Socket客户端和服务器

我尝试使用以下代码从服务器到客户端发送文件和目录列表。 服务器从客户端接收,但我不知道服务器是否没有发回结果或客户端不接受它。

服务器端:

package without.thread; import java.io.BufferedOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import static java.rmi.Naming.list; import java.util.ArrayList; import static java.util.Collections.list; import java.util.logging.Level; import java.util.logging.Logger; public class SerTest { public static int reads,red; public static void main(String[] args) { try { System.out.print("im ready, call my client"); ServerSocket serverSocket = new ServerSocket(18789); while(true){ Socket clientSocket = serverSocket.accept(); System.out.println(clientSocket+"1"); // outk=new PrintWriter(clientSocket.getOutputStream(),true); BufferedReader bufferedReader; bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); } 

从我可以看到你在客户端上执行readLine() ,同时在服务器上执行outqw.write() 。 从服务器发送的字符串中没有行尾字符,因此客户端永远无法完成readLine 。 执行outqw.println()或将"\n"添加到您发送的任何内容的末尾。 话虽这么说,很难用一堆注释掉的东西来导航未格式化的代码,所以问题可能就是其他问题。

在向服务器/客户端发送内容时尝试手动刷新流。