当你不知道它的类型时,如何将输入流保存到变量中?

时间:2012-10-18 20:03:17

标签: java tcpsocket

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

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

客户端:

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

所以我怎么能这样做,我的意思是在服务器端(或者是opossite)中保存客户端输出流的变量,所以我可以在循环和ifs中使用它?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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