第09章網(wǎng)絡(luò)通信(信息學(xué)院2013級)總結(jié)_第1頁
第09章網(wǎng)絡(luò)通信(信息學(xué)院2013級)總結(jié)_第2頁
第09章網(wǎng)絡(luò)通信(信息學(xué)院2013級)總結(jié)_第3頁
第09章網(wǎng)絡(luò)通信(信息學(xué)院2013級)總結(jié)_第4頁
第09章網(wǎng)絡(luò)通信(信息學(xué)院2013級)總結(jié)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第9章

網(wǎng)絡(luò)通信《Java程序設(shè)計實(shí)用教程(第3版)》網(wǎng)絡(luò)編程基礎(chǔ)使用URL訪問網(wǎng)絡(luò)資源TCP

Socket通信UDP數(shù)據(jù)報通信第9章

網(wǎng)絡(luò)通信《Java程序設(shè)計實(shí)用教程(第3版)》內(nèi)容和要求:理解URL訪問網(wǎng)絡(luò)資源。掌握TCP

Socket通信和UDP數(shù)據(jù)報通信。重點(diǎn):

TCP

Socket,

UDP

Socket。9.1計算機(jī)網(wǎng)絡(luò)基礎(chǔ)《Java程序設(shè)計實(shí)用教程(第3版)》1.計算機(jī)網(wǎng)絡(luò)與Internet計算機(jī)網(wǎng)絡(luò):是一群具有獨(dú)立功能的計算機(jī)通過設(shè)備及傳輸媒體互聯(lián)起來,在通信軟件的支持下,實(shí)現(xiàn)計算機(jī)間資源共享、信息交換或協(xié)同工作的系統(tǒng)。Internet:是由許多種不同類型、不同規(guī)模的計算機(jī)網(wǎng)絡(luò)和計算機(jī)主機(jī)組成的世界范圍內(nèi)的計算機(jī)網(wǎng)絡(luò)。Internet服務(wù):主要有web瀏覽、電子郵件、文件傳輸、遠(yuǎn)程登錄、即時通信、網(wǎng)絡(luò)電話等等。2.TCP/IP協(xié)議《Java程序設(shè)計實(shí)用教程(第4版)》在計算機(jī)網(wǎng)絡(luò)中,為了雙方在通信過程中能正確理解、接受和執(zhí)行,就要遵守相同的規(guī)定。在通信內(nèi)容、怎樣通信以及何時通信等方面,雙方遵從相互可以接受的一組約定和規(guī)則,這些約定和規(guī)則的集合稱為協(xié)議。網(wǎng)絡(luò)體系結(jié)構(gòu)的概念計算機(jī)網(wǎng)絡(luò)體系機(jī)構(gòu)就是計算機(jī)網(wǎng)絡(luò)各層次及其協(xié)議的集合。高層中層低層高層中層低層

中間節(jié)點(diǎn)物理介質(zhì)《Java程序設(shè)計實(shí)用教程(第3版)》網(wǎng)絡(luò)體系結(jié)構(gòu)參考模型《Java程序設(shè)計實(shí)用教程(第3版)》TCP/IP協(xié)議結(jié)構(gòu)EthernetIPICMPARPRARPTCPUDPDNSSNMP

HTTP

SMTPFTP

TELNET 應(yīng)用層傳輸層網(wǎng)際層網(wǎng)絡(luò)接口層《Java程序設(shè)計實(shí)用教程(第3版)》3.Internet地址《Java程序設(shè)計實(shí)用教程(第4版)》在計算機(jī)網(wǎng)絡(luò)中的每臺主機(jī)都需要唯一的地址標(biāo)識。兩種標(biāo)識方式:IP地址,形如xxx.xxx.xxx.xxx域名系統(tǒng)。例如4.URL(統(tǒng)一資源定位符)《Java程序設(shè)計實(shí)用教程(第4版)》URL是為標(biāo)志Internet上資源位置而設(shè)的一種編碼方式。其格式如下:協(xié)議://主機(jī)[:端口][/文件][#引用]主機(jī)(IP地址/域名)用于定位提供服務(wù)的特定主機(jī);端口:提供服務(wù)的端口號如/index.html5.客戶-服務(wù)器(Client-Server)模式CS模式是指一個應(yīng)用系統(tǒng)被分成邏輯上分離的兩部分:客戶端和服務(wù)器,服務(wù)器提供某種服務(wù)而等待服務(wù)請求達(dá)到;客戶端向指定服務(wù)器發(fā)送服務(wù)請求?!禞ava程序設(shè)計實(shí)用教程(第4版)》NetAssist工具演示9.2使用URL訪問網(wǎng)絡(luò)資源URL和IP地址使用JTabbedPane、JSplitPane和JEditorPane《Java程序設(shè)計實(shí)用教程(第3版)》9.2.1

URL和IP地址《Java程序設(shè)計實(shí)用教程(第3版)》1.URL類public

final

class

URL

implements

java.io.Serializable{public

URL(String

protocol,

String

host,

int

port,

String

filthrows

MalformedURLExceptionpublic

String

toString()public

String

getProtocol()public

int

getPort()public

int

getDefaultPort()public

String

getHost()public

String

getFile()//返回完整URL地址字符串//返回協(xié)議名//返回端口//返回默認(rèn)端口//返回主機(jī)名//返回完整文件名public

final

InputStream

openStream()throwsjava.io.IOException

//使用流獲得URL資源內(nèi)容}9.2.1

URL和IP地址《Java程序設(shè)計實(shí)用教程(第3版)》URL類的功能創(chuàng)建URL對象URL

url2

=

new

URL("");可以指定協(xié)議、主機(jī)、端口、文件名的完整URL地址。獲得URL對象的屬性獲取URL對象的協(xié)議、主機(jī)、端口、文件名等屬性使用流獲得URL資源的內(nèi)容一個URL對象僅僅代表一個網(wǎng)絡(luò)資源,獲取內(nèi)容的操作仍然需要使用流。public

final

InputStream

openStream()

;2.URLConnection類《Java程序設(shè)計實(shí)用教程(第3版)》URLConnection類和URL是配套使用的。如filename表示一個文件名,F(xiàn)ILE表示一個文件對象。URL表示一個網(wǎng)絡(luò)上的文件名,URLConnection表示網(wǎng)絡(luò)上的一個文件對象。通過URLConnection可以獲取指定文件的各種屬性。與直接對FILE可以進(jìn)行文件的讀取不同,對網(wǎng)絡(luò)文件的讀取仍然是通過URL獲取的流來實(shí)現(xiàn)。2.URLConnection類《Java程序設(shè)計實(shí)用教程(第3版)》URLConnection類聲明public

abstract

class

URLConnection{protected

URLConnection(URL

url);//構(gòu)造方法public

URL

getURL()

//返回當(dāng)前連接的URL對象

public

int

getContentLength()//返回資源文件的長度public

String

getContentType()//返回資源文件的類型public

object

getContent()//獲取此URL連接的內(nèi)容public

long

getLastModified()//返回資源文件的最后修改日期}使用URL類的openConnection()方法創(chuàng)建一個

URLConnection對象Public

URLConnection

openConnection()

throwsjava.io.IOException3.InetAddress類《Java程序設(shè)計實(shí)用教程(第3版)》public

class

InetAddress

extends

Object

implements

Serializable{public

static

InetAddress

getByName(String

host)

throwsUnknownHostExceptionpublic

static

InetAddress

getByAddress(String

host,

byte[]addr)

throws

UnknownHostExceptionpublic

static

InetAddress

getLocalHost()throwsUnknownHostException

//返回本地主機(jī)public

String

getHostAddress()public

String

getHostName()//返回IP地址字符串//返回主機(jī)名}此類表示互聯(lián)網(wǎng)協(xié)議(IP)地址。主機(jī)名到IP地址的解析通過使用本地機(jī)器配置信息和網(wǎng)絡(luò)命名服務(wù)(DNS)和網(wǎng)絡(luò)信息服務(wù)(NIS)來實(shí)現(xiàn)。9.2.2使用JTabbedPane、JSplitPane和JEditorPane《Java程序設(shè)計實(shí)用教程(第3版)》·

選項(xiàng)卡窗格public

class

JTabbedPane

extends

JComponent

implementsSerializable,

Accessible,

SwingConstants{public

JTabbedPane()

//構(gòu)造方法public

void

addTab(String

title,Component

comp)//添加頁public

int

getTabCount()public

int

getSelectedIndex()public

void

setSelectedIndex(int

index)//返回頁數(shù)//當(dāng)前選中頁序號//選中第index頁publicvoid

addChangeListener(ChangeListener

l)//注冊選擇事件監(jiān)聽器}2.分割窗格《Java程序設(shè)計實(shí)用教程(第3版)》public

class

JSplitPane

extends

JComponent

implementsAccessible{public

final

static

int

VERTICAL_SPLIT

=

0;

//垂直分割常量public

final

static

int

HORIZONTAL_SPLIT

=

1;

//水平分割常量public

JSplitPane()public

JSplitPane(int

orientation)//創(chuàng)建分割窗格//指定分割方向常量public

void

setDividerLocation(int

location)//設(shè)置分割條位置(單位是像素)}3.編輯器窗格《Java程序設(shè)計實(shí)用教程(第3版)》public

class

JEditorPane

extends

JTextComponent{public

JEditorPane()

//構(gòu)造方法public

JEditorPane(URL

initialPage)throwsIOException

//指定初始頁的URLpublic

JEditorPane(String

url)

throws

IOException}可編輯各種內(nèi)容的文本組件。能有效地將其形態(tài)變換為適當(dāng)?shù)奈谋揪庉嬈鞣N類。text/plain純文本。text/html

HTML文本,對動態(tài)腳本支持不好,支持HTML3.2。text/rtf

RTF文本。提供了對多樣化文本格式(Rich

TextFormat)的有限支持?!纠?.1】查看指定URL的Web頁編輯器及HTML文檔。(1)readFrom方法中完成內(nèi)容讀取并顯示在

JTextArea;(2)從本地讀取和網(wǎng)絡(luò)讀取內(nèi)容的操作相同(3)在tab中切換時產(chǎn)生

stateChanged事件;《Java程序設(shè)計實(shí)用教程(第3版)》9.3

TCP

Socket通信《Java程序設(shè)計實(shí)用教程(第3版)》TCP

Socket通信原理Java的Socket通信10.2.1

TCP

Socket通信原理IP協(xié)議IPv4數(shù)據(jù)報頭格式互聯(lián)網(wǎng)上每臺電腦都分配一個IP地址,IPV4地址不夠用,出現(xiàn)很多臨時解決方法,最終是需要IPV6《Java程序設(shè)計實(shí)用教程(第3版)》2.傳輸層協(xié)議用戶數(shù)據(jù)報協(xié)議(UDP)和傳輸控制協(xié)議(TCP)協(xié)議通過端口指定服務(wù)3.

基于TCP連接的Socket通信IP地址可以唯一標(biāo)識計算機(jī),使用傳輸層的端口號來區(qū)分同一臺計算機(jī)上的不同應(yīng)用。端口只在本計算機(jī)有意義(局部);《Java程序設(shè)計實(shí)用教程(第3版)》TCP協(xié)議格式《Java程序設(shè)計實(shí)用教程(第3版)》TCP有限狀態(tài)機(jī)《Java程序設(shè)計實(shí)用教程(第3版)》10.2.2

Java的TCP

Socket通信·

Java的Socket通信流程getInputStreamgetOutputStream《Java程序設(shè)計實(shí)用教程(第3版)》2.ServerSocket類和Socket類《Java程序設(shè)計實(shí)用教程(第3版)》public

class

ServerSocket

extends

Object{public

ServerSocket(int

port);//構(gòu)造方法,指定端口號public

Socket

accept();//等待接收客戶端的連接請求,連接成功后返回一個已連接的Socket對象public

void

close();//停止等候客戶端的連接請求}此類實(shí)現(xiàn)服務(wù)器套接字。服務(wù)器套接字等待請求通過網(wǎng)絡(luò)傳入Socket類public

class

Socket

extends

Object{

public

Socket(String

host,int

port)//構(gòu)造方法,指定主機(jī)名和端口號public

InputStream

getInputStream();//返回TCP連接提供的字節(jié)輸入流public

OutputStream

getOutputStream();//返回

TCP連接提供有字節(jié)輸出流public

synchronized

void

close();

//關(guān)閉TCP連接}此類實(shí)現(xiàn)客戶端套接字【例】最簡單的TCP

socket例子,服務(wù)器在8885端口等待連接,客戶端連接后,服務(wù)器給客戶發(fā)送“歡迎”信息《Java程序設(shè)計實(shí)用教程(第3版)》Socket類【例9.2】采用TCP

Socket通信實(shí)現(xiàn)的點(diǎn)對點(diǎn)聊天。先執(zhí)行server程序,并且確認(rèn)2001端口處于Listening狀從一個端口可以獲得輸入流和輸出流,所以對一個socket既可以讀取,又可以寫入操作?!禞ava程序設(shè)計實(shí)用教程(第3版)》3.提供多客戶的Socket通信服務(wù)【例9.3】網(wǎng)絡(luò)發(fā)牌程序

(1)服務(wù)器端(2)客戶端(1)程序執(zhí)行的順序必須是East(2001)->South(2002)->

West(2003)->North(2004),由服務(wù)端的處理限制了順序?!禞ava程序設(shè)計實(shí)用教程(第3版)》單端口為多用戶提供服務(wù)例子以發(fā)撲克牌為例,服務(wù)器實(shí)現(xiàn)發(fā)牌功能,每個客戶端連接服務(wù)器后,服務(wù)器啟動一個線程來處理這個請求?!禞ava程序設(shè)計實(shí)用教程(第3版)》【例9.4】多客戶的TCP

Socket通信?!禞ava程序設(shè)計實(shí)用教程(第3版)》9.4

UDP數(shù)據(jù)報通信UDP數(shù)據(jù)報UDP組播數(shù)據(jù)報UDP是傳輸層的簡單協(xié)議,只增加了應(yīng)用程序的多到處理和簡單的錯誤校驗(yàn)功能。不能分段處理,沒有MF字段,數(shù)據(jù)重組需要由應(yīng)用層實(shí)現(xiàn)UDP通信需要DatagramPacket和DatagramSocket兩個類的支持。UDP通信不需要建立連接?!禞ava程序設(shè)計實(shí)用教程(第3版)》10.3.1

UDP數(shù)據(jù)報《Java程序設(shè)計實(shí)用教程(第3版)》·

數(shù)據(jù)報包功能(1)將用戶數(shù)據(jù)封裝成一個UDP報文,準(zhǔn)備發(fā)送。(2)創(chuàng)建一個UDP報文,準(zhǔn)備接收。public

final

class

DatagramPacket

extends

Object{public

DatagramPacket(byte[]

buf,

int

length,

InetAddress//創(chuàng)建發(fā)address,int

port)送數(shù)據(jù)報public

DatagramPacket(byte[]buf,int

length)數(shù)據(jù)報//創(chuàng)建接收public

byte[]

getData()public

int

getLength()public

InetAddress

getAddress()public

int

getPort()//從緩沖區(qū)中返回數(shù)據(jù)//返回數(shù)據(jù)報的長度//返回遠(yuǎn)程主機(jī)IP地址//返回遠(yuǎn)程主機(jī)的端口號public

void

setAddress(InetAddress

iaddr)

//發(fā)往的主機(jī)的IP地址public

void

setPort(int

iport)

//發(fā)往的遠(yuǎn)程主機(jī)上的端口}2.數(shù)據(jù)報套接字功能:用于服務(wù)的創(chuàng)建UDP端口,通過端口發(fā)送或者接受UDP數(shù)據(jù)包。public

class

DatagramSocket

extends

Object{public

DatagramSocket()

throws

SocketException//創(chuàng)建Socket,綁定一可用端口public

DatagramSocket(int

port)

throws

SocketException//port指定端口public

void

send(DatagramPacket

pack)

throws

IOException//發(fā)送pack數(shù)據(jù)報包public

void

receive(DatagramPacket

pack)throwsIOException

//接收數(shù)據(jù)報包存于p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論