我尝试使用以下代码从服务器发送文件和目录列表。服务器从客户端接收但我不知道服务器是否没有发回结果或客户端不接受它。
服务器端:
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("i m 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()));
}
答案 0 :(得分:1)
从我所看到的,您在客户端上执行readLine()
,同时在服务器上执行outqw.write()
。从服务器发送的字符串中没有行尾字符,因此客户端永远无法完成readLine
。执行outqw.println()或将"\n"
添加到您发送的任何内容的末尾。话虽如此,用一堆注释掉的东西导航未格式化的代码是非常困难的,所以问题可能就是其他问题。
答案 1 :(得分:-1)
尝试在向服务器/客户端发送内容时手动刷新流。