我正在使用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中使用它?
答案 0 :(得分:1)
使用Object
。输入Object
的引用可以引用Integer
或String
。另一个故事当然是将传入的数据反序列化。如果问题与不知道如何解释序列化数据有关,请包含某种标记以指示数据是什么。
答案 1 :(得分:0)
您应该设计服务器和客户端之间的通信协议,使服务器能够读取一些信息(您可以将其称为标准头),并基于此将知道如何解释发送的剩余字节客户。
然后你就会知道如何从客户端读取数据,以及在何处存储数据。