-
Socket通信實(shí)現(xiàn)步驟
創(chuàng)建ServerSocket和Socket
打開連接到Socket的輸入、輸出流
按照協(xié)議對(duì)Socket進(jìn)行讀/寫操作
關(guān)閉輸入輸出流、關(guān)閉Socket
查看全部 -
Socket通信
TCP協(xié)議是面向連接的、可靠的、有序的,以字節(jié)流的方式發(fā)送數(shù)據(jù)
基于TCP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的類
客戶端的Socket類
服務(wù)器端的ServerSocket類
查看全部 -
InetAddress類
1、InteAddress類用于標(biāo)識(shí)網(wǎng)絡(luò)上的硬件資源,表示互聯(lián)網(wǎng)協(xié)議(IP)地址。
查看全部 -
IP地址和端口號(hào)組成了所謂的Socket,Socket是網(wǎng)絡(luò)上運(yùn)行的程序之間雙向通信鏈路的終結(jié)點(diǎn),是TCP和UDP的基礎(chǔ)。
http:80? ftp:21 telnet:23
查看全部 -
Socket編程
1.網(wǎng)絡(luò)基礎(chǔ)知識(shí)
2.InetAddress類
3.URL
4.TCP編程
5.UDP編程
兩臺(tái)計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信
端口號(hào) 端口號(hào)
協(xié)議 ? ?協(xié)議
192.168.0.118? -----網(wǎng)絡(luò)------192.168.0.10
IP地址 IP地址
兩臺(tái)主機(jī)連接的必備條件:1.IP地址 2.協(xié)議 3.端口
TCP/IP協(xié)議
TCP/IP是目前世界上應(yīng)用最為廣泛的協(xié)議
是以TCP和IP為基礎(chǔ)的不同層次上多個(gè)協(xié)議的集合
也稱:TCP/IP 協(xié)議族 或 TCP/IP協(xié)議棧
TCP:Transmission Control Protocol 傳輸控制協(xié)議
IP:Internet Protocol 互聯(lián)網(wǎng)協(xié)議
TCP/IP模型
5應(yīng)用層
(HTTP 超文件傳輸協(xié)議)
(FTP 文件傳輸協(xié)議)
(SMTP 簡(jiǎn)單郵件傳送協(xié)議)
(Telnet 遠(yuǎn)程登錄服務(wù))
等等
4傳輸層(TCP/IP協(xié)議)
3網(wǎng)絡(luò)層
2數(shù)據(jù)鏈路層
1物理層
例如:網(wǎng)線 雙絞線 網(wǎng)卡等等
IP地址
為實(shí)現(xiàn)網(wǎng)絡(luò)不同計(jì)算機(jī)之間的通信,每臺(tái)機(jī)器都必須有一個(gè)唯一的
標(biāo)識(shí)---IP地址
IP地址格式:數(shù)字型,如:192.168.0.1
目前用的比較多的是:IPv4? ? IP地址的長(zhǎng)度為:32的2進(jìn)制
(關(guān)于IP地址的相關(guān)內(nèi)容在《探索Linux的網(wǎng)絡(luò)世界》中有詳細(xì)介紹哦)
端口
1.用于區(qū)分不同應(yīng)用程序
電腦 -------------------------------------------電腦
唯一端口號(hào)
2.端口號(hào)范圍為0~65535,其中0~1023為系統(tǒng)所保留? ?建議使用:1023往后的端口號(hào)
3.IP地址和端口號(hào)組成了所謂的Socket,Socket是網(wǎng)絡(luò)上運(yùn)行
的程序之間雙向通信鏈路的終結(jié)點(diǎn),是TCP和UDP的基礎(chǔ).
例子:
? ? ? ? ? IP? ? ? ? ? ? ? ? ? ? ?IP
A張三------------總機(jī)------------總機(jī)------------B李四
4.http:80 ftp:21 ? telnet:23
Java中的網(wǎng)絡(luò)支持
針對(duì)網(wǎng)絡(luò)通信的不同層次,Java提供的網(wǎng)絡(luò)功能有四大類:
1.InetAddress:用于標(biāo)識(shí)網(wǎng)絡(luò)上的硬件資源.
2.URL:統(tǒng)一資源定位符 通過URL可以直接讀取或?qū)懭刖W(wǎng)絡(luò)上的數(shù)據(jù).
3.Sockets:使用TCP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的Socket相關(guān)的類.
4.Datagram:使用UDP協(xié)議,將數(shù)據(jù)保存在數(shù)據(jù)抱中,通過網(wǎng)絡(luò)進(jìn)行通信.
查看全部 -
多線程服務(wù)器
查看全部 -
客戶端收信息查看全部
-
1、多線程的優(yōu)先級(jí)
未設(shè)置優(yōu)先級(jí)可能會(huì)導(dǎo)致運(yùn)行速度非常慢,可降低優(yōu)先級(jí)
2、是否關(guān)閉輸出流和輸入流
對(duì)于同一個(gè)socket,如果關(guān)閉了輸出流,則與該輸出流關(guān)聯(lián)的socket也會(huì)被關(guān)閉,所以一般不用關(guān)閉流,直接關(guān)閉socket
3、使用TCP通信傳輸對(duì)象
4、socket編程傳遞文件
查看全部 -
服務(wù)器端實(shí)現(xiàn)步驟
1、創(chuàng)建DatagamSocket,指定端口號(hào)
2、創(chuàng)建DatagramPacket
3、接收客戶端發(fā)送的數(shù)據(jù)信息
4、讀取數(shù)據(jù)
客戶端
1、定義發(fā)送數(shù)據(jù)
2、創(chuàng)建DatagramPacket,包含發(fā)送的信息
3、創(chuàng)建DatagamSocket
4、發(fā)送數(shù)據(jù)
查看全部 -
UDP協(xié)議是無連接、不可靠的、無序的
UDP協(xié)議以數(shù)據(jù)報(bào)作為數(shù)據(jù)傳輸?shù)妮d體
進(jìn)行數(shù)據(jù)傳輸時(shí),首先要將傳輸?shù)臄?shù)據(jù)定義成數(shù)據(jù)報(bào)(Datagram),在數(shù)據(jù)報(bào)中指明要到達(dá)的Socket(主機(jī)地址和端口號(hào)),然后再將數(shù)據(jù)報(bào)發(fā)送出去。
DatagramPacket:表示數(shù)據(jù)報(bào)包
DatagramSocket:進(jìn)行端到端通信的類
查看全部 -
服務(wù)器端:
1、建立ServerSocket對(duì)象,綁定監(jiān)聽端口
2、通過accept()方法監(jiān)聽客戶端請(qǐng)求
3、建立鏈接后,通過輸入流讀取客戶端發(fā)送的請(qǐng)求信息
4、通過輸出流向客戶端發(fā)送相應(yīng)信息
5、關(guān)閉相關(guān)資源
客戶端:
1、簡(jiǎn)歷Socket對(duì)象,指明需要連接的服務(wù)器的地址和端口號(hào)
2、連接建立后,通過輸出流向服務(wù)器發(fā)送請(qǐng)求
3、通過輸入流獲取服務(wù)器響應(yīng)的信息
4、關(guān)閉相關(guān)資源
查看全部 -
TCP協(xié)議是面向連接、可靠的、有序的,以字節(jié)流的方式發(fā)送數(shù)據(jù)
基于TCP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的類
客戶端Socket類
服務(wù)端ServerSocket類
查看全部 -
getProtocol()獲取協(xié)議
getHost()獲取主機(jī)
如果未指定端口號(hào),則使用默認(rèn)端口號(hào),getPort()返回-1
getPort()獲取端口
getPath()文件路徑
getFile()文件名
getRef()相對(duì)路徑(錨點(diǎn)后面的內(nèi)容)
getQuery()查詢字符串(URL后面的參數(shù))
//通過URL對(duì)象獲取所表示的字節(jié)輸入流
openStream()
使用 new BufferReader(new InputStreamRead(url.openStream))實(shí)例化按字符讀取數(shù)據(jù)。readLine()讀取一行數(shù)據(jù)。
注意編碼格式轉(zhuǎn)換,在創(chuàng)建InputStreamRead對(duì)象時(shí)添加utf-8編碼
new InputStreamRead(isr,"utf-8")
查看全部 -
InetAddress.getLocalHost()獲取本機(jī)InetAddress實(shí)例
InetAddress.getByName(name/IP)根據(jù)主機(jī)名/IP稱獲取InetAddress實(shí)例
getHostName()獲取計(jì)算機(jī)名稱
getHostAddress()獲取IP地址
getAddress()獲取字節(jié)數(shù)組形式的IP地址
查看全部 -
端口
1、用于區(qū)分不同應(yīng)用程序
2、端口號(hào)范圍0~65535,其中0~1023為系統(tǒng)所保留
3、IP地址和端口號(hào)組成了所謂的Socket,Socket是網(wǎng)絡(luò)上運(yùn)行的程序之間雙向通信鏈路的終結(jié)點(diǎn),是TCP和UDP的基礎(chǔ)
4、http 80 ftp 21 telnet 23
Java提供的網(wǎng)絡(luò)功能四大類:
1、InetAddress:用于標(biāo)識(shí)網(wǎng)絡(luò)上的硬件資源,即表示IP地址。
2、URL:統(tǒng)一資源定位符,通過URL可以直接讀取或?qū)懭缇W(wǎng)絡(luò)上的數(shù)據(jù)。
3、Sockets:使用TCP或UDP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的Socket相關(guān)的類。
4、Datagram:使用UDP協(xié)議,將數(shù)據(jù)保存在數(shù)據(jù)報(bào)中,通過網(wǎng)絡(luò)進(jìn)行通信。
查看全部
舉報(bào)