【问题标题】:Java Socket files and directory list names display on client [duplicate]Java Socket文件和目录列表名称显示在客户端[重复]
【发布时间】:2013-12-23 18:53:49
【问题描述】:

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

服务器代码:

 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);
           }  } 

【问题讨论】:

    标签: java multithreading sockets client-server


    【解决方案1】:

    我看到的第一件事是您在 while 循环中创建服务器套接字。在 while 循环的第二次运行中,您最终将得到 'java.net.BindException: Address already in use: 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();
    }
    

    其次,您的服务器代码读取一个字符串行并将“abc”发送到客户端,然后调用“traverse”方法。但是“traverse”方法似乎没有向客户端套接字发送任何内容。

    客户端也被阻塞在“redd = b.readLine();”中行,因为服务器只发送“abc”并且不附加新行('\n 或 \r)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-14
      • 2016-03-10
      • 1970-01-01
      • 2013-05-20
      • 2019-12-26
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      相关资源
      最近更新 更多