socket编程中常见的概念问题!
socket編程一般指的就是網(wǎng)絡(luò)編程,常見的服務端和客戶機都是必不可少的,今天小千就來給大家介紹一下socket編程中常見的概念問題。
一、常見傳輸協(xié)議
1、tcp協(xié)議
TCP (Transmission Control Protocol,傳輸控制協(xié)議):“面向連接 ”,可靠的、基于字節(jié)流的運輸層(Transport layer)通信協(xié)議 。
面向連接服務要經(jīng)過三個階段:數(shù)據(jù)傳數(shù)前,先建立連接,連接建立后再傳輸數(shù)據(jù),數(shù)據(jù)傳送完后,釋放連接。面向連接服務,可確保數(shù)據(jù)傳送的次序和傳輸?shù)目煽啃浴?/p>
2、udp協(xié)議
UDP(User Datagram Protocol ,用戶數(shù)據(jù)包協(xié)議):“面向非連接”,在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。
無連接服務的特點是:無連接服務只有傳輸數(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服務器上的數(shù)據(jù)。
這里我們將讀取到的數(shù)據(jù)轉(zhuǎn)換為流,然后保存到本地(類似網(wǎng)頁靜態(tài)化)。
三、TCP套接字
為了區(qū)別不同的應用程序進程和連接,許多計算機操作系統(tǒng)為應用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口。
Socket可以看作是通信連接兩端的收發(fā)器。
套接字,Socket是網(wǎng)絡(luò)上運行的程序之間雙向通信鏈路的端點。Socket所要完成的通信就是基于連接的通信,建立連接所需的程序分別運行在客戶端和服務器端。套接字連接就是客戶端的套接字對象和服務器端的套接字對象通過輸入/輸出流連接在一起。
1、TCP套接字
在Java中,套接字(通信端點)被抽象為類,我們只需要創(chuàng)建Socket類的對象,就可以使用套接字。Socket中有輸入輸出流對象,同時能實現(xiàn)服務器之間的數(shù)據(jù)傳輸。
2、Socket部分
通過將這3個參數(shù)結(jié)合起來,與一個Socket綁定,應用層就可以和傳輸層通過套接字接口,區(qū)分來自不同應用程序進程或網(wǎng)絡(luò)連接的通信,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務。
一個程序(Program B )將一段信息寫入Socket中,該Socket將這段信息發(fā)送給另外一個Socket(Program A)中,使這段信息能傳送到其他程序中。
Socket工作步驟:
a、建立連接
在服務器端通過指定一個用來等待的連接的端口號創(chuàng)建一個 ServerSocket實例.
在客戶端通過主機和端口號創(chuàng)建一個 socket實例,連到服務器上.
ServerSocket類的accept方法使服務器處于阻塞狀態(tài),等待用戶請求
b、數(shù)據(jù)通信
建立socket連接后,還應該建立輸入輸出數(shù)據(jù)流,客戶程序可以向Socket寫入請求,服務器程序處理請求,并把處理結(jié)果通過Socket返回給客戶端,完成通過虛擬通道的數(shù)據(jù)通信;
c、拆除連接
通信結(jié)束,將所建立的虛擬連接全部拆除。
以上就是關(guān)于Java socket編程的介紹了,希望能幫到大家。
本文來自千鋒教育,轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的socket编程中常见的概念问题!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java面试中,一些常见的有关多线程问题
- 下一篇: Java技术分享:SpringBoot多