Java套接字文件和目录列表名称显示在客户端上

时间:2013-12-23 18:53:49

标签: java multithreading sockets client-server

我想为客户端和服务器执行套接字连接以显示文件列表,但是代码下面没有从服务器获取任何输入或将输出提供给客户端。
请帮忙。

服务器代码:

 package javaapplicationthread;

    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.PrintWriter;



    public class zs {
      public static int reads,red;  
        public static void main(String[] args) 
        { 
                int flg=0;

               try{while(true){ 
                   ServerSocket serverSocket = new ServerSocket(1312);
               Socket clientSocket = serverSocket.accept();

                             BufferedReader bufferedReader;
           PrintWriter outk=new PrintWriter(clientSocket.getOutputStream(),true);

           bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));


             traverse(inputFolder, "");

        }
               }            
           catch (IOException ex) {
                      System.out.println("my exception is"+ex);
           }  } 

1 个答案:

答案 0 :(得分:1)

我首先看到的是你在while循环中创建服务器套接字。在while循环的第二次运行中,您最终会得到' java.net.BindException:已在使用的地址:JVM_Bind'。

服务器代码如下:

try{
   ServerSocket serverSocket = new ServerSocket(1312);
   while(true) {
       serverSocket.accept();

       //Client connected
       Socket clientSocket = serverSocket.accept();

       //Socket read-write
       //Also it is better to delegate this client session to another thread
   }
}catch(IOException e) {
   e.printStackTrace();
}

其次,您的服务器代码读取一个String行并发送" abc"到客户端,然后调用"遍历"梅托德。但是"遍历"似乎没有向客户端套接字发送任何内容。

客户也被" redd = b.readLine();"因为服务器只发送" abc"并且不附加新行(' \ n或\ r \ n)。