gpt4 book ai didi

java - Java中的UDP编程

转载 作者:行者123 更新时间:2023-11-30 09:39:35 24 4
gpt4 key购买 nike

我应该使用 UDP 创建自己的“可靠传输协议(protocol)”并用 Java 编写。然而,为了使其成为更有组织的实现并不太困难,我希望通过扩展创建我自己版本的 DatagramPacket 类,添加一些字节 header 以在从远程主机接收时读取,并传递这种新型数据包通过类型转换通过常规 DatagramSocket,或者也可能扩展 DatagramSocket 类以实现更多方法。事实证明 DatagramPacket 类是最终的,我太固执了,不能放弃我的想法。任何人都知道解决这个问题的任何方法来实现发送这种自定义数据包类型的能力吗?提前致谢!

最佳答案

子类化以提供替代行为是一种方式,但正如您已经注意到的那样并不总是可行。你能以某种方式想出一个基于 composition rather than inheritance 的解决方案吗? ?

看看你是否可以通过上课来让它发挥作用 have-a DatagramPacket作为成员变量,通过将类的方法包装在 DatagramPacket 周围来增强其行为的。

听起来您最终仍想发送 DatagramPackets,但除了 DatagramSocket 已经执行的操作之外还需要进行一些特殊处理。这是我想到的一个设计(我相信还有很多其他的):

class JayPacket {

private byte[] payload; // Payload without any flow control bytes

// Other flow control magic

public DatagramPacket asDatagramPacket() {
// Package this instance's payload plus your flow control bytes
// into a DatagramPacket
}

public static JayPacket fromDatagramPacket(DatagramPacket datagramPacket) {
// Parse the control bytes out of the given DatagramPacket
// and construct a JayPacket
}
}

然后另一个类将环绕DatagramSocket管理JayPacket <--> DatagramPacket转化。

关于java - Java中的UDP编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com