URL學習筆記

来源:http://www.cnblogs.com/gode/archive/2016/08/27/5812138.html
-Advertisement-
Play Games

不多說,先上代碼,代碼的註釋寫的已經挺詳細的了 首先先瞭解了URL的一些常用的方法,現在我嘗試利用網址讀入內容到控制台列印輸出 很好奇會列印出什麼東西呢 下麵就是列印出來的東西 並不是想象中的會將我寫的博客列印出來,而是列印出了頁面的HTML佈局代碼 而教程中,使用Tomcat伺服器,URL地址指定 ...


不多說,先上代碼,代碼的註釋寫的已經挺詳細的了

 1 //URL:統一資源定位符,一個URL的對象,對應著互聯網上的一個資源。
 2 //我們可以通過URL的對象調用其相應的方法,將此資源讀取(即所謂的“下載”)
 3 public class TestURL {
 4     //看URL下有哪些常用的方法
 5     @Test
 6     public void Testurl() throws MalformedURLException{
 7         //1.創建一個URL的對象
 8         //參數部分可以傳入一個網址的絕對路徑,這裡我傳人的是我寫的一篇博客的地址
 9         URL url = new URL("http://www.cnblogs.com/gode/p/5812013.html");
10         
11         //獲取該URL的協議名
12         System.out.println(url.getProtocol());//http
13         //獲取該URL的主機名
14         System.out.println(url.getHost());//www.cnblogs.com
15         //獲取該URL的埠號
16         System.out.println(url.getPort());//-1
17         //獲取該URL的文件路徑
18         System.out.println(url.getPath());//  /gode/p/5812013.html
19         //獲取該URL的文件名
20         System.out.println(url.getFile());//  /gode/p/5812013.html
21         //獲取該URL在文件中的相對位置
22         System.out.println(url.getRef());//null
23         //獲取該URL的查詢名
24         System.out.println(url.getQuery());//null
25     }


首先先瞭解了URL的一些常用的方法,現在我嘗試利用網址讀入內容到控制台列印輸出

很好奇會列印出什麼東西呢

 1     //如何將服務端的資源讀取進來
 2     @Test
 3     public void Testurl1() throws Exception{
 4         //1.創建一個URL的對象
 5         //參數部分可以傳入一個網址的絕對路徑,這裡我傳人的是我寫的一篇博客的地址
 6         URL url = new URL("http://www.cnblogs.com/gode/p/5812013.html");
 7         
 8         //2.URL讀入的方法是openStream
 9         InputStream is = url.openStream();
10         
11         //3.列印到控制臺上試試
12         byte[] b = new byte[1024];
13         int length;
14         while((length = is.read(b)) != -1){
15             String str = new String(b,0,length);
16             System.out.print(str);//這裡輸出的是頁面佈局的HTML代碼,對應的漢字還有些是亂碼
17         }
18     }

下麵就是列印出來的東西

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4 <meta charset="utf-8"/>
  5 <title>浣跨敤UDP榪涜鏁版嵁鍙戦?佺殑瀹炰緥涓? - Hello.World! - 鍗氬鍥?</title>
  6 <link type="text/css" rel="stylesheet" href="/bundles/blog-common.css?v=Ugwf7ssw_T-Y4bsdVDPHPhPR9NEESRNHOF-E8IRqEJk1"/>
  7 <link id="MainCss" type="text/css" rel="stylesheet" href="/skins/CodingLife/bundle-CodingLife.css?v=dE43LeVMdRWr6dflRs5MpsAmgg8oyLrU-UvBlmYDLvg1"/>
  8 <link title="RSS" type="application/rss+xml" rel="alternate" href="http://www.cnblogs.com/gode/rss"/>
  9 <link title="RSD" type="application/rsd+xml" rel="EditURI" href="http://www.cnblogs.com/gode/rsd.xml"/>
 10 <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="http://www.cnblogs.com/gode/wlwmanifest.xml"/>
 11 <script src="//common.cnblogs.com/script/jquery.js" type="text/javascript"></script>  
 12 <script type="text/javascript">var currentBlogApp = 'gode', cb_enable_mathjax=false;var isLogined=false;</script>
 13 <script src="/bundles/blog-common.js?v=Q7JqGMCRFJwGRojUTJLkQ6nIu4kUBVwm5mErn4um_MM1" type="text/javascript"></script>
 14 </head>
 15 <body>
 16 <a name="top"></a>
 17 
 18 <!--done-->
 19 <div id="home">
 20 <div id="header">
 21     <div id="blogTitle">
 22     <a id="lnkBlogLogo" href="http://www.cnblogs.com/gode/"><img id="blogLogo" src="/Skins/custom/images/logo.gif" alt="榪斿洖涓婚〉" /></a>            
 23         
 24 <!--done-->
 25 <h1><a id="Header1_HeaderTitle" class="headermaintitle" href="http://www.cnblogs.com/gode/">Hello.World!</a></h1>
 26 <h2></h2>
 27 
 28 
 29 
 30         
 31     </div><!--end: blogTitle 鍗氬鐨勬爣棰樺拰鍓爣棰? -->
 32     <div id="navigator">
 33         
 34 <ul id="navList">
 35 <li><a id="MyLinks1_HomeLink" class="menu" href="http://www.cnblogs.com/">鍗氬鍥?</a></li>
 36 <li><a id="MyLinks1_MyHomeLink" class="menu" href="http://www.cnblogs.com/gode/">棣栭〉</a></li>
 37 <li><a id="MyLinks1_NewPostLink" class="menu" rel="nofollow" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">鏂伴殢絎?</a></li>
 38 <li><a id="MyLinks1_ContactLink" class="menu" rel="nofollow" href="http://msg.cnblogs.com/send/Hello.World%21">鑱旂郴</a></li>
 39 <li><a id="MyLinks1_Syndication" class="menu" href="http://www.cnblogs.com/gode/rss">璁㈤槄</a>
 40 <!--<a id="MyLinks1_XMLLink" class="aHeaderXML" href="http://www.cnblogs.com/gode/rss"><img src="//www.cnblogs.com/images/xml.gif" alt="璁㈤槄" /></a>--></li>
 41 <li><a id="MyLinks1_Admin" class="menu" rel="nofollow" href="https://i.cnblogs.com/">綆$悊</a></li>
 42 </ul>
 43         <div class="blogStats">
 44             
 45             
 46 <span id="stats_post_count">闅忕瑪 - 2&nbsp; </span>
 47 <span id="stats_article_count">鏂囩珷 - 0&nbsp; </span>
 48 <span id="stats-comment_count">璇勮 - 0</span>
 49 
 50             
 51         </div><!--end: blogStats -->
 52     </div><!--end: navigator 鍗氬瀵艱埅鏍? -->
 53 </div><!--end: header 澶撮儴 -->
 54 
 55 <div id="main">
 56     <div id="mainContent">
 57     <div class="forFlow">
 58         
 59 <div id="post_detail">
 60 <!--done-->
 61 <div id="topics">
 62     <div class = "post">
 63         <h1 class = "postTitle">
 64             <a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/gode/p/5812013.html">浣跨敤UDP榪涜鏁版嵁鍙戦?佺殑瀹炰緥涓?</a>
 65         </h1>
 66         <div class="clear"></div>
 67         <div class="postBody">
 68             <div id="cnblogs_post_body"><p>棣栧厛濡傛灉TCP瀛﹁繃浠ュ悗錛屽啀鐪婾DP榪涜鏁版嵁浼犺緭涔熸槸澶у悓灝忓紓鐨勶紝鍙槸鐢ㄥ埌鐨勭被涓嶅悓</p>
 69 <p>UDP榪涜浼犺緭闇?瑕丏ataSocket鍜孌atapacket綾夥紝Datapacket鍙暟鎹姤錛屾瘡涓?涓暟鎹姤涓嶈兘澶т簬64k錛岄兘璁板綍鐫?鏁版嵁淇℃伅錛屽彂閫佺鐨処P銆佺鍙e彿錛?</p>
 70 <p>浠ュ強瑕佸彂閫佸埌鐨勬帴鏀剁鐨処P銆佺鍙e彿銆?</p>
 71 <p>UDP榪涜浼犺緭鏄皢鏁版嵁鍏ㄩ儴鎵撳寘錛岀劧鍚庝竴璧峰彂榪囧幓錛屽鏄撻?犳垚鏁版嵁涓㈠け錛屼絾閫熷害杈冨揩錛屾瘮濡傝涓嬭澆涓?涓數褰憋紝緙哄け鍑犱睛騫舵病鏈変粈涔堝獎鍝嶏紝浣嗛渶瑕佸揩閫熶笅杞斤紝榪欎釜鏃跺?欏彲浠ラ?夋嫨UDP榪涜浼犺緭錛屾墍璋撳悇鏈夋墍闀匡紝鍏蜂綋閫夋嫨閭g鏂瑰紡榪樻槸瑕佺湅鍏蜂綋闇?瑕併??</p>
 72 <p>鎺ヤ笅鏉ラ檮鍔犱竴涓猆DP榪涜鏂囧瓧浼犺緭錛岀劧鍚庢帴鏀剁鎵撳嵃鍒版帶鍒跺彴涓?</p>
 73 <div class="cnblogs_code">
 74 <pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.UDP.java;
 75 </span><span style="color: #008080;"> 2</span> 
 76 <span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
 77 </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.DatagramPacket;
 78 </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.DatagramSocket;
 79 </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.InetAddress;
 80 </span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.junit.Test;
 81 </span><span style="color: #008080;"> 8</span> 
 82 <span style="color: #008080;"> 9</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> TestUDP {
 83 </span><span style="color: #008080;">10</span>     <span style="color: #008000;">//</span><span style="color: #008000;"> 鍙戦?佺</span>
 84 <span style="color: #008080;">11</span> <span style="color: #000000;">    @Test
 85 </span><span style="color: #008080;">12</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> send() {
 86 </span><span style="color: #008080;">13</span>         DatagramSocket ds = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
 87 </span><span style="color: #008080;">14</span>         <span style="color: #0000ff;">try</span><span style="color: #000000;"> {
 88 </span><span style="color: #008080;">15</span>             ds = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DatagramSocket();
 89 </span><span style="color: #008080;">16</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 鍒涘緩涓?涓暟鎹姤錛屾瘡涓?涓暟鎹姤涓嶈兘澶т簬64k錛岄兘璁板綍鐫?鏁版嵁淇℃伅錛屽彂閫佺鐨処P銆佺鍙e彿錛屼互鍙婅鍙戦?佸埌
 90 </span><span style="color: #008080;">17</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 鐨勬帴鏀剁鐨処P銆佺鍙e彿銆?</span>
 91 <span style="color: #008080;">18</span>             <span style="color: #0000ff;">byte</span>[] b = "鎴戞槸鍙戦?佺"<span style="color: #000000;">.getBytes();
 92 </span><span style="color: #008080;">19</span>             DatagramPacket pack = <span style="color: #0000ff;">new</span> DatagramPacket(b, 0<span style="color: #000000;">, b.length, 
 93 </span><span style="color: #008080;">20</span>                     InetAddress.getByName("192.168.1.101"), 9090<span style="color: #000000;">);
 94 </span><span style="color: #008080;">21</span> <span style="color: #000000;">            ds.send(pack);
 95 </span><span style="color: #008080;">22</span>         } <span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
 96 </span><span style="color: #008080;">23</span> <span style="color: #000000;">            e.printStackTrace();
 97 </span><span style="color: #008080;">24</span>         } <span style="color: #0000ff;">finally</span><span style="color: #000000;"> {
 98 </span><span style="color: #008080;">25</span>             <span style="color: #0000ff;">if</span> (ds != <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
 99 </span><span style="color: #008080;">26</span> <span style="color: #000000;">                ds.close();
100 </span><span style="color: #008080;">27</span> <span style="color: #000000;">            }
101 </span><span style="color: #008080;">28</span> <span style="color: #000000;">        }
102 </span><span style="color: #008080;">29</span> <span style="color: #000000;">    }
103 </span><span style="color: #008080;">30</span> 
104 <span style="color: #008080;">31</span>     <span style="color: #008000;">//</span><span style="color: #008000;"> 鎺ユ敹絝?</span>
105 <span style="color: #008080;">32</span> <span style="color: #000000;">    @Test
106 </span><span style="color: #008080;">33</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> receive() {
107 </span><span style="color: #008080;">34</span>         DatagramSocket ds = <
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對戰游戲 要求: 數據連接類: 實體類: namespace ConsoleApplication1 { public class Player { private string name; //玩家姓名 public string Name { get { return name; } set { ...
  • 最前面的話:Smobiler是一個在VS環境中使用.Net語言來開發APP的開發平臺,也許比Xamarin更方便 ...
  • //我的C#是跟著猛哥(劉鐵猛)(算是我的正式老師)《C#語言入門詳解》學習的,微信上猛哥也給我講解了一些不懂得地方,對於我來說簡直是一筆巨額財富,難得良師! 在學習C#的時候,老師講的示例中有一些地方用到了this關鍵字,猛哥在視頻中也略微解釋了一下,並未深講,所以直到學完,我在這一塊依舊有著疑問 ...
  • 背水一戰 Windows 10 之 控制項(文本類): AutoSuggestBox ...
  • (此文章同時發表在本人微信公眾號“dotNET每日精華文章”,歡迎右邊二維碼來關註。) 題記:最近在開發釘釘的微應用,考慮到性能和UI庫的支持,遂採用了React來開發前端。 目前我的項目是基於ABP框架的ASP.NET MVC/WEB API作為後端,AngularJS作為前端。但是發現釘釘官方的... ...
  • 第一次寫博文寫的不好,但希望能幫助大家,有什麼偏頗的地方希望大家多多斧正。在這個問題上困擾了我兩天,這兩天翻來覆去睡不著。一直在想這個問題。廢話不多說下麵進入正題。 1.創建創建web項目,加入SpringMVC的jar,我這裡演示用spring-framework-4.2.3.RELEASE。ja ...
  • 1.引用的Jar 2. BitTransform.java package com.test; public class BitTransform { public static int getUShort(byte[] byteArray) { int value = 0; value += (b... ...
  • 說明:Firemonkey 圖片按鈕(支持三種狀態:MouseOver, MouseDown, MouseUp,可各別指定圖片) 原碼下載:[示例]TestImageButton_圖片按鈕(3態).zip 運行展示: ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...