socket編程一般指的就是網(wǎng)絡(luò)編程,常見的服務(wù)端和客戶機都是必不可少的,今天小千就來給大家介紹一下socket編程中常見的概念問題。
一、常見傳輸協(xié)議
1、tcp協(xié)議
TCP (Transmission Control Protocol,傳輸控制協(xié)議):“面向連接 ”,可靠的、基于字節(jié)流的運輸層(Transport layer)通信協(xié)議 。
面向連接服務(wù)要經(jīng)過三個階段:數(shù)據(jù)傳數(shù)前,先建立連接,連接建立后再傳輸數(shù)據(jù),數(shù)據(jù)傳送完后,釋放連接。面向連接服務(wù),可確保數(shù)據(jù)傳送的次序和傳輸?shù)目煽啃浴?/p>
2、udp協(xié)議
UDP(User Datagram Protocol ,用戶數(shù)據(jù)包協(xié)議):“面向非連接”,在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。
無連接服務(wù)的特點是:無連接服務(wù)只有傳輸數(shù)據(jù)階段。消除了除數(shù)據(jù)通信外的其它開銷。
3、IP協(xié)議
IP( Internet Protocol ):計算機網(wǎng)絡(luò)相互連接進行通信而設(shè)計的協(xié)議。互聯(lián)網(wǎng)地址或Internet地址。是用來唯一標識互聯(lián)網(wǎng)上計算機的邏輯地址。
二、URL實現(xiàn)網(wǎng)頁靜態(tài)化
類 URL 代表一個統(tǒng)一資源定位符,它是指向互聯(lián)網(wǎng)“資源”的指針。利用他可以獲得網(wǎng)絡(luò)資源,讀取WWW服務(wù)器上的數(shù)據(jù)。
這里我們將讀取到的數(shù)據(jù)轉(zhuǎn)換為流,然后保存到本地(類似網(wǎng)頁靜態(tài)化)。
三、TCP套接字
為了區(qū)別不同的應(yīng)用程序進程和連接,許多計算機操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口。
Socket可以看作是通信連接兩端的收發(fā)器。
套接字,Socket是網(wǎng)絡(luò)上運行的程序之間雙向通信鏈路的端點。Socket所要完成的通信就是基于連接的通信,建立連接所需的程序分別運行在客戶端和服務(wù)器端。套接字連接就是客戶端的套接字對象和服務(wù)器端的套接字對象通過輸入/輸出流連接在一起。
2、TCP套接字
在Java中,套接字(通信端點)被抽象為類,我們只需要創(chuàng)建Socket類的對象,就可以使用套接字。Socket中有輸入輸出流對象,同時能實現(xiàn)服務(wù)器之間的數(shù)據(jù)傳輸。
3、Socket部分
通過將這3個參數(shù)結(jié)合起來,與一個Socket綁定,應(yīng)用層就可以和傳輸層通過套接字接口,區(qū)分來自不同應(yīng)用程序進程或網(wǎng)絡(luò)連接的通信,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
一個程序(Program B )將一段信息寫入Socket中,該Socket將這段信息發(fā)送給另外一個Socket(Program A)中,使這段信息能傳送到其他程序中。
Socket工作步驟:
a、建立連接
在服務(wù)器端通過指定一個用來等待的連接的端口號創(chuàng)建一個 ServerSocket實例.
在客戶端通過主機和端口號創(chuàng)建一個 socket實例,連到服務(wù)器上.
ServerSocket類的accept方法使服務(wù)器處于阻塞狀態(tài),等待用戶請求
b、數(shù)據(jù)通信
建立socket連接后,還應(yīng)該建立輸入輸出數(shù)據(jù)流,客戶程序可以向Socket寫入請求,服務(wù)器程序處理請求,并把處理結(jié)果通過Socket返回給客戶端,完成通過虛擬通道的數(shù)據(jù)通信;
c、拆除連接
通信結(jié)束,將所建立的虛擬連接全部拆除。
以上就是關(guān)于Java socket編程的介紹了,最后歡迎對Java開發(fā)感興趣的同學(xué)來到千鋒java培訓(xùn)班了解我們的java學(xué)習(xí)課程,現(xiàn)在咨詢更有免費java學(xué)習(xí)資料可以領(lǐng)取,趕緊去找在線老師申領(lǐng)吧。