【正文】
名或 IP地址 ? 試圖連接的端口號 (Port number) ICMSP Java Socket通信模型 S e r v e rC l i e n t建 立 服 務(wù) 端 監(jiān) 聽s o c k e t等 待 并 接 收連 接 請 求接 收 請 求 后 , 創(chuàng)建 連 接 s o c k e tI n p u t S t r e a mO u t p u t S t r e a m關(guān) 閉 s o c k e t創(chuàng) 建 連 接s o c k e t , 向 服 務(wù)端 發(fā) 送 請 求I n p u t S t r e a mO u t p u t S t r e a m關(guān) 閉 s o c k e t開 始 通 信建 立 連 接結(jié) 束 通 信ICMSP 基于 TCP網(wǎng)絡(luò)程序設(shè)計 ? 客戶機(jī) /服務(wù)器( C/S)模式 1. 創(chuàng)建服務(wù)器端 ServerSocker,設(shè)置建立連接的端口號; 2. 創(chuàng)建客戶端 Socket對象,設(shè)置綁定的主機(jī)名稱或 IP地址,指定連接端口號; 3. 客戶機(jī) Socket發(fā)起連接請求; 4. 建立連接 。 ?從 Socket得到的結(jié)果是一個 InputStream以及OutputStream(若使用恰當(dāng)?shù)霓D(zhuǎn)換器,則分別是Reader和 Writer),以便將連接作為一個 IO流對象對待。可以想象它們之間有一條虛擬的“線纜”,線纜的每一端都插入一個“套接字”或者“插座”里。如 HTTP服務(wù)器端口號是 80, FTP服務(wù)器端口號是 21等 ?注意:端口并不是機(jī)器上一個物理上存在的場所,而是一種軟件抽象 ICMSP 套接字( Socket) 21 ?“套接字”或者“插座”( Socket)也是一種軟件形式的抽象,用于表達(dá)兩臺機(jī)器間一個連接的“終端”。為了把每個服務(wù)器區(qū)分開來,我們對端口進(jìn)行編號,稱為 端口號 。我們把這些服務(wù)程序也叫做服務(wù)器,如 WEB服務(wù)器、 FTP服務(wù)器、 DNS服務(wù)器等等 ?平時我們所說的“聯(lián)到某個服務(wù)器上”,實際上是指聯(lián)到正在某臺物理的服務(wù)器上運(yùn)行的某個服務(wù)程序上 ICMSP 端口( port) ?一個 IP地址只能用來標(biāo)識一個物理的服務(wù)器。 } } ICMSP 服務(wù)器( Server) ?通常,我們把網(wǎng)絡(luò)中對其它用戶提供某種服務(wù)的一臺機(jī)器叫做服務(wù)器。} (null,str)。 str=廣東工業(yè)大學(xué)的 IP地址為:+()。 public class Example9_1{ public static void main(String[] args) { String str。 ? A類網(wǎng)絡(luò)掩碼: ? B類網(wǎng)絡(luò)掩碼: ? C類網(wǎng)絡(luò)掩碼: ICMSP 特殊的 IP地址 ?對于本地計算機(jī)(就是你正在使用的那臺計算機(jī)),有兩種方法標(biāo)識它: ? 用主機(jī)名標(biāo)識: localhost ? 用 IP地址標(biāo)識: 它們是等價的 ICMSP Java 對網(wǎng)絡(luò)編程的支持 ? 30多個用于網(wǎng)絡(luò)編程的接口和類 ?常用的類: ? IAddress :該類用來代表一個 IP地址 ? ServerSocket :該類實現(xiàn)服務(wù)器端 Socket ? Socket :該類實現(xiàn)客戶端 Socket ? URL :該類用來代表一個統(tǒng)一資源定位符 ? URLDecoder :該類用于 HTML表單譯碼 ? URLEncoder :該類用于 HTML表單編碼 ? DatagramPacket :該類用來代表一個數(shù)據(jù)報包 ? DatagramSocket :該類用來代表一個發(fā)送和接收數(shù)據(jù)報包的 Socket ICMSP 類 ?定義: public class IAddress extends Object implements