【问题标题】:How to save an input stream into a variable when you don t know it 's type?当您不知道它的类型时,如何将输入流保存到变量中?
【发布时间】:2012-10-18 20:03:16
【问题描述】:

我正在使用 TCP 套接字,我也是 Java 和套接字的初学者。场景是客户端,根据服务器的回答,可以发送整数或字符串。我需要将客户端的输出流保存在服务器端的变量中,这样我就可以在 if 语句等中使用它。但是当我不知道发送的流是整数还是字符串时,我怎么能这样做呢?

我做了一个非常简单的例子,因为我的代码又大又乱,我不想让它变得更复杂

客户端:

serverSentence=inFromServer.readLine();   
if (serverSentence.equals("Hello"))
     {
     anInt=readUserInput.nextInt(); 
     outToServer.write(anInt);
     }
else 
     {
     outToServer.writeBytes("Hello word!"+'\n');
     }

那么我该如何做到这一点,我的意思是将 Client 的输出流保存在 Server 端(或对端)的变量中,这样我就可以在循环和 ifs 中使用它?

【问题讨论】:

  • 你应该写对象而不是字节。

标签: java tcpsocket


【解决方案1】:

使用Object。键入为Object 的引用可以引用IntegerString。另一个故事当然是将传入的数据反序列化。如果问题与不知道如何解释序列化数据有关,请包含某种标志以指示数据是什么。

【讨论】:

  • 很高兴我能帮上忙。诚然,我认为我的回答更像是一种指导,之后你发布了你的代码,但很高兴你发现了一些东西。欢迎您详细说明问题究竟是什么以及您是如何解决的,因为您的问题(和我的回答)相当模糊。
【解决方案2】:

您应该设计服务器和客户端之间的通信协议,使服务器能够读取一些信息(您可以将其称为标准标头),并基于此知道如何解释由客户。

然后你就会知道如何从客户端读取数据,以及存储在哪里。

【讨论】:

    猜你喜欢
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2022-09-27
    • 2013-03-15
    • 1970-01-01
    • 2021-03-17
    • 2020-03-13
    相关资源
    最近更新 更多