我正在用Java编写一个程序,其中两台或多台使用UDP的机器之间进行通信。我的应用程序在通过网络将它们序列化到另一台机器之后发送对象,在这台机器上它将被反序列化并处理它。到目前为止,我成功地发送了一种物体。使用java通过UDP发送/接收不同的对象
我的问题是我希望发件人能够发送不同类型的对象,并使接收者能够接收它们并将它们再次转换为适当的类型。但是,由于UDP分配了字节缓冲区,因此将数据接收到缓冲区中,因为不同的对象具有不同的大小,所以不可能投射或检测接收到的对象的类型。
是否有一种方法可以用来使用UDP发送不同类型的对象,然后在另一端接收它们? (我不要求代码在这里,只是一些想法)
感谢
编辑: 我要找发送/接收不同类型的对象不知道是什么的类型的最佳方式下一个预期对象。假设我有三种对象类型,我希望在任何时候都能收到它们中的任何一种。 布赖恩的评论之后,我又想到了另一件事:如何为可变大小的数据类型(如字符串,数组等)设置缓冲区大小。当接收到一个UDP数据包时,您首先要分配一个大小的缓冲区来接收该对象。这与我原来的问题有某种关系。
发布一些代码会很有用。对象的内容大小可能会有所不同,而不是因为它们的类型。 – 2010-05-29 14:18:41
难道你不使用buildin java序列化?在这种情况下:只需从内容中发送类名称,以便接收方可以处理它。 – Daniel 2010-05-29 14:48:17
@Brian:是的,但如果我只在对象中使用原始数据类型,那么这不会是一个真正的问题。 @Daniel:不,我在这里使用内置的一个。 – AAA 2010-05-29 20:13:48