【问题标题】:Java send Personalized Object by socketJava 通过套接字发送个性化对象
【发布时间】:2017-03-20 14:12:29
【问题描述】:

我的问题是关于 java 发送个性化对象, 我创建了一个 Rilevazione 类,而不是我想将一个对象 Rilevazione 发送给读取对象并打印它的客户端。 这里是服务器:

 try 
        {
            ServerSocket welcomeSocket = new ServerSocket(50000);

            while (true) 
            {    
                // Create the Client Socket
                Socket client = welcomeSocket.accept();
                System.out.println("Socket Extablished...");
                // Create input and output streams to client
                ObjectOutputStream outToClient = new ObjectOutputStream(client.getOutputStream());
                ObjectInputStream inFromClient = new ObjectInputStream(client.getInputStream());

                Rilevazione rl=new Rilevazione();
                outToClient.writeObject(rl);        

            }

        }
        catch (Exception e) 
        {
            System.err.println("Server Error: " + e.getMessage());
            System.err.println("Localized: " + e.getLocalizedMessage());
            System.err.println("Stack Trace: " + e.getStackTrace());
            System.err.println("To String: " + e.toString());
        }

这里是客户:

try 
    {

            Socket clientSocket = new Socket(HOST, 50000);
            // Create the input & output streams to the server
            ObjectInputStream inFromServer = new ObjectInputStream(clientSocket.getInputStream());

            Rilevazione rl=(Rilevazione)inFromServer.readObject();
            inFromServer.close();
            clientSocket.close();          

            rl.printit();




    }
    catch (IOException | ClassNotFoundException e)
    {
        System.err.println("Client Error: " + e.getMessage());
        System.err.println("Localized: " + e.getLocalizedMessage());
        System.err.println("Stack Trace: " + e.getStackTrace());
    }

java 编译器给我一个错误:

error: cannot find symbol
            Rilevazione rl=(Rilevazione)inFromServer.readObject();
                            ^

为什么? 谁能帮我? 对象是否必须序列化而不是反序列化?

ps:文件结构: src >performancethinclient->-files.class

【问题讨论】:

  • Rilevazione 类在第二个应用程序类路径中?你能发布你用来编译和运行的命令吗?
  • Rilevazione 是定义对象的同一包中的一个简单类
  • 从终端完成我使用 javac 的应用程序
  • 试试看:去吧。它们所在的 Java 文件夹和 usr javac - cp 。 *.java 如果它不起作用,你能发布文件夹结构吗?
  • 它编译为:

标签: java object server send


【解决方案1】:

如您所说,如果所有类都在同一个包中,您可以使用以下命令进行编译:

javac -cp . *.java

要运行您的应用程序,请转到根文件夹并运行以下命令:

java -cp . performancethinclient.PerformanceThinClient

【讨论】:

  • 形成源文件的根...哪里有.classe文件
  • 在包上的一个文件夹运行命令:例如:如果你的源文件夹是 src/performancethinclient,你应该在 src 文件夹上运行 java
  • 我试试...返回的是不可能找到主类performancethinclient ...
  • 请用您的文件夹结构和 .class 所在的位置编辑您的原始问题
  • 在 src 文件夹上运行 java -cp 。 performancethinclient.PerformanceThinClient
猜你喜欢
  • 2014-01-11
  • 2021-01-11
  • 2012-08-29
  • 2011-06-21
  • 2014-11-13
  • 2012-03-13
  • 2015-08-31
  • 2014-03-24
相关资源
最近更新 更多