java - 通过数据报套接字发送对象java

标签 java sockets datagram

我正在实现这个example因为我想向多个客户端广播。在尝试使用套接字发送另一个对象(已序列化)时,我收到一条错误,指出套接字(在示例中)无法通过它发送对象。数据报套接字不能也发送/接收对象吗?

最佳答案

一般来说不是,不是。数据报包通常相对较小 - 您可以尝试将对象序列化为包装在ObjectOutputStream中的ByteArrayOutputStream,然后尝试发送字节数组之后 - 但您可能会发现它很快就变得太大了。

使用更高效的序列化格式,例如 Protocol Buffers可能会允许您在单个数据包中获取更多信息,但通常您希望序列化为而不是单个数据包...并且尽快当您开始尝试将基于流的协议(protocol)置于基于数据报的协议(protocol)上时 - 好吧,只要 TCP 必须可靠,您很快就会得到 TCP。

如果您可以向我们提供有关您正在尝试执行的操作的更多详细信息(包括可靠性限制 - 如果数据包丢失有多严重?),我们也许能够为您提供更多帮助。

关于java - 通过数据报套接字发送对象java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627833/

相关文章:

java - 日期转换: error with time

java - 在现有元素上执行 javascript 时,GhostDriver 抛出陈旧异常 "Element does not exist in cache"

java - bloated class 和 tagged class 有什么区别?

ios - 如何在 swift 上编写 DatagramPacket 代码?

java - 在Java中: UDP based Client/Server not giving the expected output

Java - 从输入流读取时卡住

c - socket sendto在udp数据包期间得到错误22

互联网上的 Java 套接字

sockets - golang grpc 套接字调整

linux - 我如何获得在 unix 域套接字中排队的数据报数量