2016-07-25 35 views

回答

0

以你的編號點依次是:

  1. 你可以找到答案,唯一的方法是通過對等應用程序確認收到。
  2. Java中沒有這樣的API。據我所知,在BSD套接字層也沒有一個,但是我不熟悉Linux的外部限制,他們可能會介紹一些這樣的事情。
+0

有沒有更簡單的API,只是爲了檢查(布爾響應)緩衝區是否爲空? – PHcoDer

+0

沒有任何形式的API。 – EJP

0

你無法知道。數據可能會被操作系統和TCP/IP堆棧緩衝,並且沒有方法可以確定它是否實際上已經放置在電線上。即使知道它被放置在電線上也不能保證任何事情,因爲它可能在運輸途中丟失。

對於UDP,您永遠不會知道目標系統是否接收到數據,除非您編寫基於UDP的協議,以便遠程系統確認數據。

對於TCP協議棧將確保您的代碼在數據在傳輸過程中丟失時得到通知,但在您收到確認消息之前可能會等待很多秒。