2013-12-23 29 views
0

我试过以下代码发送文件和目录列表,从服务器到客户端。服务器正在从客户端接收,但我不知道服务器是否不发送结果或客户端不接受它。请帮我out.ThanksJava套接字客户端和服务器

服务器端: -

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

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

+0

嘿。精彩和非常感谢..我花了整整两天在这个和我全职的时间..但没有得到答案,非常感谢。你可以给我提供你的邮件地址吗?所以我可以问你进一步怀疑,如果有..我的[email protected] ....非常感谢... – CodeEatingMyMind

0

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

+0

感谢您的帮助,(我得到了使用println的输出) – CodeEatingMyMind

+0

上述方法使用同样的思路。 ''\ n“'在'.write()'中触发'.flush()'。正如你所说的,你使用'.println(“something”)''输出'something \ n'。这与使用'.write()+ .flush()'是一样的,但是你需要手动控制。似乎你正在玩一些客户端/服务器代码,所以我猜你会发现这有用:) – Bumbolt

相关问题