我應該使用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. Java UDP服務器編程
- 3. udp winsock編程
- 4. Java編程的MANET編程路由協議(UDP)
- 5. 在java中需要關於udp套接字編程的幫助
- 6. Java中的UDP線程無限循環
- 7. 在Python中的UDP套接字編程
- 8. C++中的UDP套接字編程
- 9. Java UDP p2p聊天程序。
- 10. UDP套接字編程HELP
- 11. UDP Socket編程與PHP
- 12. 套接字編程UDP GetSocketOpt
- 13. Java:多線程和UDP套接字編程
- 14. Java的UDP通信的小程序,UDP服務器
- 15. 在Java中的UDP廣播
- 16. 在Java中的UDP聊天
- 17. 多線程Udp套接字編程
- 18. Java UDP多線程的最佳實踐
- 19. 在ubuntu的UDP套接字編程
- 20. 安全的UDP套接字編程
- 21. Java-udp編程 - 從服務器發送消息到客戶端
- 22. Java的UDP連接
- 23. Java可靠的UDP
- 24. 我不是UDP的Java得到任何消息從遠程系統編程
- 25. Java UDP問題
- 26. Java UDP DatagramPacket
- 27. Java UDP多播
- 28. Java中的UDP實現中的HTTP
- 29. 測試多線程UDP服務器(Java)
- 30. Java多線程UDP服務器錯誤
我認爲這會起初工作,但我不認爲它會。 DatagramSocket類的方法'send'僅將DatagramPacket作爲參數。我開始認爲只是在有效載荷中包含字符並在收到數據後解析數據可能會更容易。任何優點/缺點都會浮現在腦海中? – 2012-03-19 07:34:11
我沿着這些線添加了一個設計示例,看看它是否有幫助! – oksayt 2012-03-19 07:50:47
啊,我明白你的意思了。我認爲這樣做的工作量可能相同。我會玩弄它。非常感謝! – 2012-03-19 07:55:51