最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java編程筆記

2023-06-09 14:39 作者:丶摩羯丶  | 我要投稿

只能看到交互的雙方及交互協(xié)議 個人認為可以看做人與人之間按照約定方式進行交流


HTTP協(xié)議:超文本傳輸協(xié)議(用于實現(xiàn)Web文檔的請求和轉(zhuǎn)發(fā))


SMTP協(xié)議:簡單電子郵件傳輸協(xié)議


FTP協(xié)議:文件傳輸協(xié)議


Telnet協(xié)議:網(wǎng)絡(luò)遠程訪問協(xié)議


傳輸層:提供客戶端和服務(wù)器之間傳輸應(yīng)用層報文的服務(wù) 對等體:段或用戶數(shù)據(jù)報 次高抽象層,為交互雙方提供信息傳輸服務(wù) 個人認為可以看做為人與人之間交流提供途徑,如“寫信”


TCP:面向連接的服務(wù) 管生又管養(yǎng)


UDP:無連接服務(wù) 管生不管養(yǎng)


網(wǎng)絡(luò)層:按照運輸層協(xié)議,提供主機之間傳遞數(shù)據(jù)報的服務(wù) 對等體:數(shù)據(jù)包 個人認為可以看做實現(xiàn)了信件在省份之間的收發(fā)服務(wù)


數(shù)據(jù)鏈路層 對等體:幀 個人認為可以看做實現(xiàn)了信件在城市之間的收發(fā)服務(wù)


物理層 對等體:位 個人認為可以看做實現(xiàn)了信件在具體郵局之間的收發(fā)服務(wù)


TCP/IP的一些基本概念

IP地址:連接到TCP/IP網(wǎng)絡(luò)上的每臺設(shè)備的唯一地址標識


端口(Port):每臺設(shè)備中每個應(yīng)用程序的唯一標識


套接字(Socket):通信端點,由IP地址+端口號組成


傳輸控制協(xié)議(TCP)

面向連接的保證可靠傳輸?shù)膮f(xié)議


收發(fā)雙方的一對socket建立連接后進行雙向數(shù)據(jù)傳輸、


用戶數(shù)據(jù)報協(xié)議(UDP)

無連接傳輸協(xié)議,無序,不一定安全,但簡單效率高


將要傳輸目的地定義成數(shù)據(jù)報(Datagram) 在數(shù)據(jù)報中指明要到達的端點(Socket) 發(fā)送數(shù)據(jù)報


域名

服務(wù)器地址的別名


Java網(wǎng)絡(luò)編程

通過流模式實現(xiàn)網(wǎng)絡(luò)交互,一個接口同時擁有輸入流和輸出流 一個進程向端口輸出流寫數(shù)據(jù),另一個進程在接口的輸入流上讀數(shù)據(jù)即可


Java提供的網(wǎng)絡(luò)編程類

簡記方法:


帶URL的為面向應(yīng)用層的類


帶Socket的為面向運輸層中TCP協(xié)議相關(guān)的類


帶Datagram的為面向運輸層中UDP協(xié)議相關(guān)的類


帶Exception的為各種異常


領(lǐng)域類名面向應(yīng)用層的類URL URLConnection面向運輸層中與TCP協(xié)議相關(guān)的類Socket ServerSocket面向運輸層中與UDP協(xié)議相關(guān)的類DatagramPakcet DatagramSocket MulticastSocket指向網(wǎng)絡(luò)層的類InetAddress可能產(chǎn)生的異常BindException ConnectException MalformedURLException NoRouteToHostException ProtocolException SocketException UnknownHostException UnknownServiceException


InetAddress的使用

Java的IP地址封裝類


無構(gòu)造函數(shù),直接用靜態(tài)方法獲取InetAddress實例


public static InetAddress getByName(String host);

public static InetAddress getLocalHost();

public static InetAddress[] getAllByName(String host);

//host可以是機器名、IP地址或DSN域名

//潛在異常:UnknownHostException


InetAddress的主要方法

public byte[] getAddress()

//獲取本對象的IP地址并存放在字節(jié)數(shù)組中

public String getHostAddress()

//獲取本對象的IP地址“%d.%d.%d.%d”

public String getHostName()

//獲取本對象的機器名


統(tǒng)一資源定位器(URL)

Internet上資源地址的統(tǒng)一表達格式


語法格式:<protocol>:// <host : port>/dir/filename <要獲取資源的傳輸協(xié)議> :// <主機:端口號>/目錄/文件名


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

public URL (String spec);

//spec:URL地址

public URL (URL context String spec);

//context:現(xiàn)有URL對象

//基于一個URL對象訪問同一主機上不同路徑的文件

public URL (String protocol,String host,String file);

public URL (String protocol,String host,int port,String file)

//協(xié)議、機器名稱、端口號、文件名//URL常用方法

public String getProtocol;//獲取URL協(xié)議名

public String getHost;//獲取URL主機名

public int getPort;//獲取URL端口號

public String getFile;//獲取URL文件名

public String getRef;//獲取URL相對位置

public String getPath;//獲取URL的路徑

public String getAuthority;//獲取URL的權(quán)限信息

public String getUserInfo;//獲取使用者信息


讀入URL數(shù)據(jù)

openStream():讀取一個URL對象指定的資源 與指定URL建立連接并返回一個InputStream對象


Socket接口

分為服務(wù)器端(ServerSocket)和客戶端(Socket)


通信步驟

服務(wù)器端生成ServerSocket對象,用accept()等待客戶端的連接請求


客戶端生成Socket對象并發(fā)出連接請求


服務(wù)器端通過accept()方法接收到客戶端的請求后,開辟連接用的接口,并生成所需I/O數(shù)據(jù)流


服務(wù)器端和客戶端通過由客戶端提供的Socket中的InputStream和OutputStream進行通信


通信結(jié)束后,服務(wù)器端關(guān)閉通過accept()得到的Socket接口,客戶端也要關(guān)閉Socket接口


客戶端Socket類

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

public Socket(String address,int port);

public Socket(InetAddress address,int port)

public Socket(String host,int port,InetAddress localAddress,int localPort);

public Socket(InetAddress address,int port,InetAddress localAddress,int localPort);


Socket類主要方法


方法名功能void close()關(guān)閉Socket連接InetAddress getInetAddress()獲取當(dāng)前連接的遠程主機的Internet地址InetAddress getLocalAddress()獲取本地主機的Internet地址InputStream getInputStream()獲取Socket輸入流OutputStream getOutputStream()獲取Socket輸出流int getPort()獲取當(dāng)前連接的遠程主機的端口號int getLocalPort()獲取本地主機的端口號void shutdownInput()關(guān)閉輸入流void shutdownOutput()關(guān)閉輸出流


服務(wù)器ServerSocket類

ServerSocket類用于監(jiān)聽來自指定端口的連接


在為新的連接創(chuàng)建一個Socket對象以后,客戶端便可與服務(wù)器端進行通信


//ServerSocket類構(gòu)造方法

public ServerSocket(int port);

public ServerSocket(int port,int backlog);

public ServerSocket(int port,int backlog,InetAddress bindAddress);

//port:端口號

//backlog:服務(wù)器忙時保持連接請求的等待客戶量

//bindAddress:指定的服務(wù)器IP地址


ServerSocket類主要方法


方法名功能Socket accept()接收該連接并返回該連接的Socket對象void close()關(guān)閉此服務(wù)器的SocketInetAddress getInetAddress()獲取服務(wù)器Socket綁定的地址int getLocalPort()獲取服務(wù)器Socket所偵聽的端口號int getSoTimeout()獲取連接的超時數(shù)void setSoTimeout(int timeout)設(shè)置ServerSocket的accept()方法等待用戶連接的超時時間 timeout默認為0,表示永遠不超時,直接進入阻塞狀態(tài)


?

?異常的處理方式:拋出異常后,首先使用new在堆上創(chuàng)建異常對象。然后,當(dāng)前的執(zhí)行路徑被終止,從當(dāng)前環(huán)境跳到對異常對象的引用。尋找下一個恰當(dāng)?shù)奈恢茫ó惓L幚沓绦颍├^續(xù)執(zhí)行,它的任務(wù)是從錯誤狀態(tài)種恢復(fù),以使程序能要么換一種方式運行,要么繼續(xù)運行下去。


異常拋出:


throw:使用它來拋出異常,可以把它類比return操作符(注意是類比,因為異常的處理位置可能會跨越方法調(diào)用棧的許多層級,而不是簡單的跳出該方法),它能拋出異常,并且跳出當(dāng)前作用域。它能拋出任意類型的Throwable對象(通常異常的唯一信息來自于它的名字)。


異常捕獲:


異常拋出了就得處理嘛,有兩種方式:


try-catch-finally語句(只有在你知道如何處理的情況下才捕獲異常。):


catch語句只有匹配的異常類型才會執(zhí)行,try-catch是 必須的結(jié)構(gòu)。


而finally語句一般在需要手動釋放資源時是必須的,它總會被執(zhí)行(無論break、continue還是return一樣會執(zhí)行)。所以注意不要因為使用了finally而跳過了某些異常,比如finally中拋出異常,或者直接return跳出當(dāng)前層次。




throws:聲明異常,誰調(diào)用誰處理。


終止與恢復(fù):


·.終止:在這種模型中,將假設(shè)錯誤非常嚴重,以至于程序無法返回到異常發(fā)生的地方繼續(xù)執(zhí)行。一旦異常被拋出,就表明錯誤已無法挽回,也不能回來繼續(xù)執(zhí)行。


·.恢復(fù):在這種模型中,將假設(shè)錯誤非常嚴重,以至于程序無法返回到異常發(fā)生的地方繼續(xù)執(zhí)行。一旦異常被拋出,就表明錯誤已無法挽回,也不能回來繼續(xù)執(zhí)行。(可以不用拋出異常,調(diào)用方法來修正該錯誤,或者把try塊放在while循環(huán),這樣就不斷地進入 try 塊,直到得到滿意的結(jié)果)


自定義異常類型:繼承Exception就行了(如果想要寫入System.err 而將錯誤發(fā)送給標準錯誤流,可以寫一個String 的構(gòu)造器,并賦值給父類)。注意命名規(guī)范。


java編程筆記的評論 (共 條)

分享到微博請遵守國家法律
文安县| 陆丰市| 湘阴县| 铅山县| 华容县| 黑水县| 卢湾区| 敦化市| 逊克县| 无极县| 秦安县| 广灵县| 鄂尔多斯市| 茶陵县| 辽阳市| 吉木乃县| 白山市| 右玉县| 旬邑县| 互助| 江山市| 洛扎县| 康定县| 凭祥市| 温宿县| 曲周县| 巴林右旗| 德惠市| 比如县| 石狮市| 武城县| 齐齐哈尔市| 哈尔滨市| 剑川县| 大渡口区| 兴安县| 方城县| 北辰区| 明溪县| 拉萨市| 崇文区|