JAVA基礎學習總結,day21(網絡編程,Socket 類,ServerSocket 類)

軟件結構:
c/s
b/s

網絡編程:

概述:在一定的協議下,書寫代碼使得兩臺計算機在網絡下進行通信
網絡通信協議:通信協議是對計算機必須遵守的的規則

TCP/IP協議:傳輸控制協議/因特網互聯協議(Transmission Control Protocol/Internet Protocol),是Internet最基本、最廣泛
TCP協議特點:面向連接,數據安全,傳輸數據慢 三次握手
UDP協議特點:面向無連接,數據不安全,傳輸數據快

網絡編程三要素

協議: 計算機網絡通信必須遵守的規則
IP地址: IP地址用來給一個網絡中的計算機設備做唯一的編號
端口號: 端口號就可以唯一標識設備中的進程(應用程序),用兩個字節表示的整數,它的取值範圍是0-65535,其中,0-1023之間的端口號,已經佔用

通信程序
兩端通訊時步驟:
1.服務端程序,需要事先啓動,等待客戶端的連接
2.客戶端主動連接服務器端,連接成功才能通信。服務端不可以主動連接客戶端

兩個類用於實現TCP通信程序:
1.客戶端:java.net.Socket 類表示。創建Socket對象,向服務端發出連接請求,服務端響應請求,兩者建立連接開始通信
2.服務端; java.net.ServerSocket 類表示。創建ServerSocket對象,相當於開啓一個服務,並等待客戶端的連接。

Socket 類:該類實現客戶端套接字,套接字指的是兩臺設備之間通訊的端點

構造方法
public Socket(String host, int port):創建套接字對象並將其連接到指定主機上的指定端口號。 如果指定的host是null,則相當於指定地址爲回送地址

成員方法
public InputStream getInputStream(): 返回此套接字的輸入流
public OutputStream getOutputStream(): 返回 此套接字的輸出流
public void close(): 關閉此套接字
public void shutdownOutput(): 禁止此套接字的輸出流

ServerSocket 類:這個類雙向了服務器套接字,該對象等待通過網絡的請求
構造方法
public ServerSocket(int port): 使用該構造方法在創建ServerSocket對象時 就可以將其綁定到一個指定的端口號上,參數port就是端口號

成員方法
public Socket accept(): 偵聽並接受連接,返回一個新的Socket對象,用於和客戶端實現通信
該方法會一直阻塞直到建立連接,如果客戶端沒有發送請求或者沒有和服務器連接成功,那麼就會一直阻塞,如果連接成功,就返回Socket對象

客戶端:
1.創建一個Socket對象,指定連接的服務器的ip地址以及端口號
2.通過socket對象獲取輸出流
3.創建一個字節輸入流,封裝數據源文件
4.使用字節輸入流從硬盤中讀取文件的數據
5.使用socket對象獲取的輸出流把這些文件數據寫給服務器
6.關閉流,釋放資源

服務端:
1.創建一個serversocket對象,指定服務的端口號
2.調用accept()方法,等待連接,如果連接上了就會返回對應的socket對象
3.創建一個字節輸出流對象,封裝目的地文件
4.使用socket對象獲取輸入,流讀取客戶端寫過來的數據
5.使用輸出流對象,把這些文件數據寫到服務器的硬盤中
6.關閉流,釋放資源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章