我应该使用UDP创建我自己的'可靠传输协议'并用java编写。然而,要使它成为一个更有组织的实现并不是非常困难,我希望通过扩展创建我自己的DatagramPacket类版本,在从远程主机接收时添加一些要读取的字节头,并传递这种新类型的数据包通过经由类型转换的常规DatagramSocket,或者扩展DatagramSocket类以实现更多方法。结果发现DatagramPacket类是最终的,我太固执了,放弃了我的想法。任何人都知道任何方式来实现发送这种自定义数据包类型的能力?提前致谢!Java中的UDP编程
2
A
回答
2
子类化提供交替行为是一种方式,但它并不总是可行的,因为你已经注意到了。你能不能想出一个基于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
转换。
相关问题
- 1. Java UDP编程
- 2. udp winsock编程
- 3. 在java中需要关于udp套接字编程的帮助
- 4. Java中的UDP线程无限循环
- 5. 在Python中的UDP套接字编程
- 6. C++中的UDP套接字编程
- 7. Java UDP p2p聊天程序。
- 8. Java:多线程和UDP套接字编程
- 9. UDP Socket编程与PHP
- 10. 套接字编程UDP GetSocketOpt
- 11. Java的UDP通信的小程序,UDP服务器
- 12. 在Java中的UDP聊天
- 13. 在Java中的UDP广播
- 14. Java UDP多线程的最佳实践
- 15. 在ubuntu的UDP套接字编程
- 16. Java-udp编程 - 从服务器发送消息到客户端
- 17. Java UDP DatagramPacket
- 18. 我不是UDP的Java得到任何消息从远程系统编程
- 19. Java - UDP多线程服务器
- 20. 测试多线程UDP服务器(Java)
- 21. 非阻塞UDP I/O vs阻塞Java中的UDP I/O
- 22. 原始套接字编程UDP Python
- 23. 点网编程udp buffersize错误
- 24. 网络编程UDP数据包
- 25. Java中的游戏编程?
- 26. java中的并发编程
- 27. Java中的Windows编程?
- 28. Eclipse中的Java Socket编程
- 29. 循环中的Java编程
- 30. Java编程中的数组
我认为这会起初工作,但我不认为它会。 DatagramSocket类的方法'send'仅将DatagramPacket作为参数。我开始认为只是在有效载荷中包含字符并在收到数据后解析数据可能会更容易。任何优点/缺点都会浮现在脑海中? – 2012-03-19 07:34:11
我沿着这些线添加了一个设计示例,看看它是否有帮助! – oksayt 2012-03-19 07:50:47
啊,我明白你的意思了。我认为这样做的工作量可能相同。我会玩弄它。非常感谢! – 2012-03-19 07:55:51