在 main 中调用方法有问题吗?简单 Client/server

trouble calling methods in main? simple Client/server

注意:我的第一个 Whosebug POST!哇哦!

大家好,所以我构建了一个简单的客户端服务器程序,它只接收一个字符串然后 returns 它,但是由于某种原因我无法让我的 main 正确调用这些方法而且我没有不明白为什么它不起作用。有人可以看一下并告诉我我错了什么 missing/doing 吗?我知道我的网络逻辑是可靠的,但不是电话。我认为是时候换新眼睛了,任何事情都有帮助!谢谢。

主线:

public class FileRetrieve_Easy_main 
{
   public static void main(String[] args)
   {    
       new Thread(new SimpleServer()).start();
       new Thread(new SimpleClient()).start();

  }
}

客户:

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

    public class Client 
    {
        public static class SimpleClient implements Runnable 
        {
            @Override
            public void run() 
            {
                Socket socket = null;
                try 
                {
                    Thread.sleep(3000);
                    socket = new Socket("localhost", 3333);
                PrintWriter outWriter = new PrintWriter(socket.getOutputStream(),true);
                outWriter.println("Hello Mr. Server!");

            } 
            catch (InterruptedException e) 
            {
                e.printStackTrace();

            } 
            catch (UnknownHostException e) 
            {
                e.printStackTrace();

            } 
            catch (IOException e) 
            {

            }
            finally
            {
                try 
                {
                    socket.close();

                } 
                catch (IOException e) 
                {
                    e.printStackTrace();

                }

           }
     }// end run 

       }//end simple client

    }

服务器:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class Server 
    {
        public static class SimpleServer implements Runnable 
        {
            @Override
            public void run()   
            {
                ServerSocket serverSocket = null;
                while (true) 
                {
                    try 
                    {
                        serverSocket = new ServerSocket(3333);
                        Socket clientSocket = serverSocket.accept();    
                        BufferedReader inputReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

                        System.out.println("Client said :"+inputReader.readLine());
                     } 
                     catch (IOException e) 
                     {
                         e.printStackTrace();
                     }
                     finally
                     {
                        try 
                        {
                            serverSocket.close();

                        } 
                        catch (IOException e) 
                        {
                            e.printStackTrace();
                        }
                    }
                }//end while
            }// end run

        }//end simple server

    }//end class

您的服务器 Runnable 的名称是 Server.SimpleServer。您的客户端 Runnable 的名称是 Client.SimpleClient。你让它们嵌套 类,你可以在这里阅读:https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

默认包里都是类吗?

如果你这样做会怎样:

public class FileRetrieve_Easy_main 
{
   public static void main(String[] args)
   {    
       new Thread(new Server.SimpleServer()).start();
       new Thread(new Client.SimpleClient()).start();

  }
}