2013-12-23 2 views
0

Я попробовал следующий код для отправки списка файлов и каталогов, от сервера к клиенту. сервер получает от клиента, но я не знаю, не возвращает ли сервер результат, или клиент не принимает его. Пожалуйста, помогите мне out.Thanks стороныJava Socket client & sever

Сервера: -

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

эй. блестящий и большое спасибо. Я трачу 2 полных дня на этот nd, посвященный моему полному времени .. но не получил ответ, спасибо большое. может у просьба предоставить мне ur mailid. так что я мог бы задать u для дальнейших сомнений, если таковые имеются .. моя [email protected] .... спасибо большое ... – CodeEatingMyMind

0

Попробуйте вручную очистить поток при отправке чего-либо серверу/клиенту.

+0

спасибо за помощь ур, (я получил результат с помощью println) – CodeEatingMyMind

+0

Вышеуказанный метод использует та же линия мышления. '' \ N "' запускает '.flush()' в '.write()'. Как вы сказали, вы используете '.println (« something »)' wich выводит 'something \ n'. Это то же самое, что использовать '.write() + .flush()', но у вас будет ручное управление. Похоже, вы играете с кодом клиента/сервера, поэтому я догадался, что вы найдете это полезным :) – Bumbolt