迅雷的一些題java套接字編程_第1頁
迅雷的一些題java套接字編程_第2頁
迅雷的一些題java套接字編程_第3頁
迅雷的一些題java套接字編程_第4頁
迅雷的一些題java套接字編程_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java套接字編程金橋軟件 孟波客戶機/服務器模型SERVERCLIENT BCLIENT A CLIENT C服務器和客戶機不一定是硬件組件。它們可以是工作在同一機器或不同機器上的程序。什么是套接字(Socket)? Network API是典型的用于基于TCP/IP網(wǎng)絡Java程序與其他程序通訊,Network API依靠Socket進行通訊。Socket可以看成在兩個程序進行通訊連接中的一個端點,Socket可以看成在兩個程序進行通訊連接中的一個端點,一個程序將一段信息寫入Socket中,該Socket將這段信息發(fā)送給另外一個Socket中,使這段信息能傳送到其他程序中?;赥CP/IP

2、網(wǎng)絡中的每一個主機均被賦予了一個唯一的IP地址基于TCP/IP網(wǎng)絡通訊的程序都被賦予了唯一的端口和端口號,端口是一個信息緩沖區(qū),用于保留Socket中的輸入/輸出信息,端口號是一個16位無符號整數(shù),范圍是0-65535。 網(wǎng)絡協(xié)議 計算機之間進行通訊的時候,需要遵循一定的規(guī)則。數(shù)據(jù)以包的形式從一臺機器發(fā)送到另一臺。這些規(guī)則管理數(shù)據(jù)打包、數(shù)據(jù)傳輸速度、和重新創(chuàng)建數(shù)據(jù)將其恢復成原始形式。這些規(guī)則被稱為網(wǎng)絡協(xié)議。網(wǎng)絡協(xié)議是通過網(wǎng)絡進行通訊的系統(tǒng)所遵循的一系列規(guī)則和慣例。連網(wǎng)軟件通常實現(xiàn)有高低層次之分的多層協(xié)議。網(wǎng)絡協(xié)議的例子有:TCP/IP、UDP、Apple Talk 和NebBEUI。IP地址和

3、端口因特網(wǎng)服務器可以被認為是一組套接字類,它們提供了一般稱為服務的附加功能。服務的例子有:電子郵件、遠程登陸的Telnet、和通過網(wǎng)絡傳輸文件的文件傳輸協(xié)議(FTP)每種服務都與一個端口相聯(lián)系。端口是一個數(shù)值地址,通過它來處理服務請求(就象請求Web頁一樣)。TCP協(xié)議需要兩個數(shù)據(jù)項:IP地址和端口號。因此,當鍵入 時,你是如何進入金橋的主頁呢?因特網(wǎng)協(xié)議(IP)提供每一項網(wǎng)絡設備。這些設備都帶有一個稱為IP地址的邏輯地址。由因特網(wǎng)協(xié)議提供的IP地址具有特定的形式。每個IP地址都是32位的數(shù)值,表示4個范圍在0 to 255之間的8位數(shù)值。JQPX已經(jīng)注冊了它的名字,分配給 的IP地址為9。

4、如果沒有指明端口號如果沒有指明端口號,則使用服務文件中服務器的端口。每種協(xié)議有一個缺省的端口號,在端口號未指明時使用該缺省端口號。端口號應用21FTP, 傳輸文件23Telnet, 提供遠程登陸25SMTP, 傳遞郵件信息67BOOTP, 在啟動時提供配置情況80HTTP, 傳輸Web頁109POP,使用戶能訪問遠程系統(tǒng)中的郵箱端口號應用21FTP, 傳輸文件23Telnet, 提供遠程登陸25SMTP, 傳遞郵件信息67BOOTP, 在啟動時提供配置情況80HTTP, 傳輸Web頁109POP,使用戶能訪問遠程系統(tǒng)中的郵箱域名服務或DNS服務 域名服務或DNS服務是將 翻譯成9的服務。這使你

5、可以鍵入 而不必記住IP地址。想象一下,怎么可能記住所有需要訪問的站點的IP地址! 有趣的是一個網(wǎng)絡名可以映射到許多IP地址。對于經(jīng)常訪問的站點可能需要這一功能,因為這些站點容納大量的信息,并需要多個IP地址來提供業(yè)務服務。例如:9的實際的內部名稱 。DNS可以將分配給JQPX Ltd.的一系列IP地址翻譯成 。Java對網(wǎng)絡協(xié)議提供了封裝 Java 提供了一個豐富的、支持網(wǎng)絡的類庫,這些類使得應用程序能方便訪問網(wǎng)絡資源。Java提供了兩種通訊工具。它們是:使用用戶報文協(xié)議(UDP)的報文和使用傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)的套接字。套接字用TCP來進行通訊。套接字模型同其他模型相比

6、,優(yōu)越性在于其不受客戶請求來自何處的影響。只要客戶機遵循TCP/IP協(xié)議,服務器就會對它的請求提供服務。這意味著客戶機可以是任何類型的計算機??蛻魴C不再局限為UNIX、Windows、DOS或Macintosh平臺,因此,網(wǎng)上所有遵循TCP/IP協(xié)議的計算機都可以通過套接字互相通訊。SocketSocket 是基類,它支持TCP協(xié)議。TCP是一個可靠的流網(wǎng)絡連接協(xié)議。Socket類提供了輸入/輸出的方法,使得從套接字中讀出數(shù)據(jù)和往套接字中寫數(shù)據(jù)都很容易。該類對于編寫因特網(wǎng)上的通訊程序而言是必不可少的。ServerSocket是一個因特網(wǎng)服務程序用來監(jiān)聽客戶請求的類。ServerSocket實際

7、上并不執(zhí)行服務;而是創(chuàng)建了一個Socket對象來代表客戶機。通訊由創(chuàng)建的對象來完成。要使用的主要類或方法ServerSocket類 使用 包的ServerSocket類在服務器監(jiān)聽遠程登陸請求的地方常見一個套接字。ServerSocket類的accept()方法防會對客戶套接字的應用,它是Socket類的一個對象。Socket類 Socket類具有提供對客戶數(shù)據(jù)流的引用的功能,這一引用是從數(shù)據(jù)可以被接收、或可以發(fā)送到客戶機的方開始的。這由Socket類的getInputStream()和getOutputStream()方法來完成。ObjectInputStream類 一旦用getInputS

8、tream()方法初始化一個ObjectInputStream類的對象,服務器可以讀從客戶端發(fā)送的數(shù)據(jù)。readObject()方法 ObjectInputStream類的readObject()方法可以用于從數(shù)據(jù)流中讀取對象類型的數(shù)據(jù)。Socket對象的創(chuàng)建Socket s = new Socket (, 13);InputStream is = s.getInputStream ();is.close ();s.close ();以上代碼創(chuàng)建了一個服務程序主機地址為,端口號為13的Socket對象,然后從這個新創(chuàng)建的Socket對象中讀取輸入流,然后再關閉流和Socket對象。如果創(chuàng)建了一

9、個Socket對象,那么它可能通過調用Socket的 getInputStream()方法從服務程序獲得輸入流讀傳送來的信息,也可能通過調用Socket的 getOutputStream()方法獲得輸出流來發(fā)送消息。在讀寫活動完成之后,客戶程序調用close()方法關閉流和流套接字,ServerSocket對象的創(chuàng)建 ServerSocket server = new ServerSocket (10000);while (true) /獲取客戶套接子引用s 用此獲取流 Socket s = server.accept ();new ServerThread (s).start ();以上代碼片段創(chuàng)建了一個ServerSocket對象來監(jiān)聽端口10000上的連接請求,如果成功, Ser

溫馨提示

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

評論

0/150

提交評論