① TCP和UDP通信有什麼區別 如何分別用java實現
TCP是面向連接,UDP面向非連接,資料不復制,在這里簡單說下:
TCP建立連接時需要傳說的三次握手,服務端與客戶端需要確認對方身份而已,建立好連接後,就開始傳遞消息,直到有一方斷開連接位置。 就好比兩個人打電話,要先通了才能說話。
UDP只是數據報發送,它的優點速度快,並非要向TCP那樣麻煩建立,它只負責將信息發出,但是並不確保信息的准確完整性等,就好比發簡訊,簡訊是出去了,但是中間是否有問題,是否對方手機能收到就不管了。
在java中想要實現上述兩種協議通信,可採用socket建立連接,socket可以理解為碼頭,其實是套接字,這里簡單說下,就好比兩個城市運輸貨物,通過碼頭走貨一樣。至於如何通過socket建立兩個連接,網上資料多的是,在這里不復制例子了。
② java中UDP通信,兩邊都怎麼也接收不了,都是阻塞狀態。
你要先運行UdpServer2,因為它是伺服器
③ java和C#之間UDP通信問題
應該能收到消息,只是值不對吧?
你這樣試試。
你 JAVA 發送消息的時候,將 byte 數組中的每個值都加 128 試試。
JAVA 和 C# 的在這部分的區別在,JAVA 的byte 取值范圍是 -128 至 127,而 C# 的 byte 取值范圍是 0 至 255。
或者 C# 接收到消息後,將數組中每個值都加 128 看看。
④ java中UDP文件傳輸怎麼實現
java UDP連接,如果要發送文件的話,你只能自己定義一系列的協議
因為TCP UDP 雙方發送都是二進制數據
那麼這個實現非常復雜
得不停的發送數據,寫數據,建議使用http協議