欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java在線學(xué)習(xí)簡述Java Socket編程Java面向連接的類(二)

2018-06-12 14:10:08 1358瀏覽

關(guān)于Java Socket編程Java面向連接的類我們上篇文章扣丁學(xué)堂Java在線學(xué)習(xí)小編已經(jīng)給大家介紹了Java面向連接的類,本篇文章繼續(xù)為小伙伴講解。


扣丁學(xué)堂Java在線學(xué)習(xí)簡述Java Socket編程Java面向連接的類(二)


列表9.1列出了一個簡單的客戶端的程序.它向一個服務(wù)器發(fā)出一個請求,取回一個HTML文檔,并把它顯示在控制臺上.



9.1一個簡單的socket客戶端



import java.io.*; 
import java.net.*; 
/** 
* 一個簡單的從服務(wù)器取回一個HTML頁面的程序 
* 注意:merlin是本地機(jī)器的名字 
*/ 
public class SimpleWebClient { 
public static void main(String args[]) 

try 

// 打開一個客戶端socket連接
Socket clientSocket1 = new Socket("merlin", 80); 
System.out.println("Client1: " + clientSocket1); 
// 取得一個網(wǎng)頁 
getPage(clientSocket1); 

catch (UnknownHostException uhe) 

System.out.println("UnknownHostException: " + uhe); 

catch (IOException ioe) 

System.err.println("IOException: " + ioe); 


/** 
*通過建立的連接請求一個頁面,顯示回應(yīng)然后關(guān)閉socket 
*/ 
public static void getPage(Socket clientSocket) 

try 

// 需要輸入和輸出流 
DataOutputStream outbound = new DataOutputStream( 
clientSocket.getOutputStream() ); 
DataInputStream inbound = new DataInputStream( 
clientSocket.getInputStream() ); 
// 向服務(wù)器發(fā)出HTTP請求 
outbound.writeBytes("GET / HTTP/1.0\r\n\r\n"); 
// 讀出回應(yīng) 
String responseLine; 
while ((responseLine = inbound.readLine()) != null) 

// 把每一行顯示出來 
System.out.println(responseLine); 
if ( responseLine.indexOf("") != -1 ) 
break; 

// 清除 
outbound.close(); 
inbound.close(); 
clientSocket.close(); 

catch (IOException ioe) 

System.out.println("IOException: " + ioe); 


}

回憶一個,一個客戶端向一個正在監(jiān)聽的服務(wù)器socket發(fā)出一個連接.客戶端的sockets是用Socket類建立的.下面的程序建立了一個客戶端的socket并且連接到了一個主機(jī):



Socket clientSocket = new Socket("merlin", 80);


第一個參數(shù)是你想要連接的主機(jī)的名稱,第二個參數(shù)是端口號.一個主機(jī)名稱指定了目的的名稱.端口號指定了由哪個應(yīng)用程序來接收.在我們的情況下,必須指定80,因?yàn)樗悄J(rèn)的HTTP協(xié)議的端口.另外的知名的端口列在表9.1中,看:



知名的端品:



echo 7

daytime 13

daytime 13

ftp 21 

telnet 23 

smtp 25 

finger 79 

http 80 

pop3 110 


因?yàn)镾ocket類是面向連接的,它提供了一個可供讀寫的流接口.java.io包中的類可以用來訪問一個已連接的socket:



DataOutputStream outbound = new DataOutputStream( 
clientSocket.getOutputStream() ); 
DataInputStream inbound = new DataInputStream( clientSocket.getInputStream() 
); 


一旦流建立了,一般的流操作就可以做了:



outbound.writeBytes("GET / HTTP/1.0\r\n\r\n); 
String responseLine; 
while ( (responseLine = inbound.readLine()) != null) 

System.out.println(responseLine); 



以上的小程序請求了一個WEB頁面并且把它顯示出來.當(dāng)程序完成之后,連接必須關(guān)閉. 



outbound.close(); 
inbound.close(); 
clientSocket.close(); 


注意socket流必須首先關(guān)閉.所有的的socket流必須在socket關(guān)閉之前關(guān)閉.這個小程序非常地簡單,但是所有的客戶端程序都必須遵首下面的基本的步驟: 



1.建立客戶端socket連接.

2.得到socket的讀和寫的流.

3.利用流.

4.關(guān)閉流.

5.關(guān)閉socket.



以上就是扣丁學(xué)堂Java培訓(xùn)小編給大家分享的Java Socket編程Java面向連接的類,希望對小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。扣丁學(xué)堂是專業(yè)的Java培訓(xùn)機(jī)構(gòu),不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的Java在線教程供學(xué)員掛看學(xué)習(xí)哦。扣丁學(xué)堂Java技術(shù)交流群:670348138。


扣丁學(xué)堂微信公眾號

【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Java開發(fā)資訊的相關(guān)文章>>



標(biāo)簽: 扣丁學(xué)堂Java在線學(xué)習(xí) Java Socket編程Java面向連接的類 Java培訓(xùn) Java基礎(chǔ)教程 Java學(xué)習(xí)視頻 Java教學(xué)視頻 java入門教程 Java教程視頻 java在線學(xué)習(xí) java在線視頻 java在線教程

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部