0

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

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

客户端:

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

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

4

2 回答 2

1

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

于 2012-10-18T20:05:19.580 回答
0

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

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

于 2012-10-18T20:09:32.213 回答