(JAVA)基于Socket的TCP和UDP编程(第一章)
1、Socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議,TCP連接默認是用長連接的。
TCP和UDP是OSI模型中的運輸層中的協議。TCP提供可靠的通信傳輸,而UDP則常被用于讓廣播和細節控制交給應用的通信傳輸。
2、TCP與UDP如何加以區分使用?
??TCP用于在傳輸層有必要實現可靠性傳輸的情況。由于它是面向有連接并具備順序控制、重發控制等機制的。所以它可以為應用提供可靠傳輸。
另一方面,UDP主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信。舉一個IP電話進行通話的例子。如果使用TCP,數據在傳送途中如果丟失會被重發,但是這樣無法流暢地傳輸通話人的聲音,會導致無法進行正常交流。而采用UDP,它不會進行重發處理。從而也就不會有聲音大幅度延遲到達的問題。即使有部分數據丟失,也只是影響某一小部分的通話。此外,在多播與廣播通信中也使用UDP而不是TCP。RIP、DHCP等基于廣播的協議也要依賴于UDP。
二 、TCP和UDP的區別?
三 、兩者的程序設計框架
?
:
?
2.UDP:
- TCP、UDP優缺點
TCP優點:
缺點:TCP在轉移數據時必須創建(并保持)一個連接。這個連接給通信進程增加了開銷,讓它比UDP速度要慢。
UDP優點:
Java網絡編程之(一): TCP的簡單連接
這是一組非常基本的連接,
局域網中電腦A用作服務端,IP為192.168,31.168
電腦B用作客戶端,IP為192.168.31.132?
package cn.com.tcp;import java.io.IOException; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; /*** 服務器端* 編寫者:zrf* 創建時間:2019年9月25日* cn.com.tcp*TcpServer_1.java*/ public class TcpServer_1 {public static void main(String[] args) throws IOException {//創建一個ServerSocket, 用于監聽客戶端Socket的連接請求ServerSocket soket = new ServerSocket(30000);//用循環不斷接收來自客戶端的請求while(true){//每當接收到一個客戶端的請求,服務器也對應產生一個SocketSocket ss = soket.accept();//將Socket對應的輸出流包裝成printStreamPrintStream ps = new PrintStream(ss.getOutputStream());ps.print("你的消息來自于服務器端!");//關閉輸出流,關閉socketps.close();ss.close();}客戶端:
package cn.com.tcp;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException;/*** 客戶端* 編寫者:zrf* 創建時間:2019年9月25日* cn.com.tcp*TcpClient_1.java*/ public class TcpClient_1 {public static void main(String[] args) throws UnknownHostException, IOException {Socket socket = new Socket("192.168.1.101", 30000);//將Socket對應的輸入流包裝成BufferedReaderBufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line = br.readLine();System.out.println("來自服務器端的消息01: " + line);//關閉輸入流,關閉Socket;br.close();socket.close();} }?
總結
以上是生活随笔為你收集整理的(JAVA)基于Socket的TCP和UDP编程(第一章)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是正则化?
- 下一篇: 《数字图像处理》题库3:判断题