<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    工作小驛

    Ninja!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks

        java在網絡編程這個地方做的很好,java的主要目的也是為了網絡而生的,它能方便的訪問網絡上的資源。我們這節課來介紹網絡通訊的兩種機制:URL通信機制,Socket通信機制。

        URL表示了Internet上一個資源的引用或地址。java網絡應用程序也是使用URL來定位要訪問的Internet的資源。在jdk里面java.net.URL也是一個類,它來封裝URL的一些細節。目前大家可以把URL理解為網址,default.aspx 這就是個URLhttp是協議名(超文本傳輸協議)用“://”隔開www.100jq.com 是主機名。Default.aspx是文件名。它的端口號沒有寫,默認是80

    實踐:

    import java.net.*;

    public class ParseURL {

        public static void main(String[] args) throws MalformedURLException{

           URL url = new URL("http://www.100jq.com:45175/default.aspx");

           System.out.println("協議是 "+url.getProtocol());

           System.out.println("主機是 "+url.getHost());

           System.out.println("文件名是 "+url.getFile());

           System.out.println("端口號是 "+url.getPort());

        }}

    /*

       URL這個對象中提供了很多方法像是

       getProtocol()

       getHost()

       getFile()

       getPort()

    */

    我們可以通過URL對文件或資源讀取,也可以通過URLConnection讀取,也可以通過這個寫入數據限于cgi腳本。

    實踐:

    import java.net.*;

    import java.io.*;

    public class URLConnectionReader {

        public static void main(String[] args) throws IOException {

           URL google = new URL("");

           URLConnection g = google.openConnection();

           BufferedReader in = new BufferedReader(new InputStreamReader(g.getInputStream()));

           String inputLine;

           while ((inputLine=in.readLine())!=null)

               System.out.println(inputLine);

               in.close();

        }}

    URLURLConnection類提供了較高層次的網絡訪問。有時候需要進行較低層次的訪問。編寫C/S模型的程序時,就要使用Socket通信機制了。因為在網絡上不一定非得訪問文件。

    實踐://先寫個客戶端的應用

    import java.net.*;

    import java.io.*;

    public class SimpleClient {

     public static void main(String args[]) {

        try {

          // 5432端口打開服務器連接

          // 在這里用localhost127.0.0.1是一個意思

          Socket s1 = new Socket("127.0.0.1", 5432); 

          // 對這個端口連接一個reader,注意端口不能夠占用別的

          BufferedReader br = new BufferedReader(

            new InputStreamReader(s1.getInputStream()));

          // 讀取輸入的數據并且打印在屏幕上

          System.out.println(br.readLine());

          //當完成時關閉流和連接

          br.close();

          s1.close();

        } catch (ConnectException connExc) {

          System.err.println("Could not connect to the server.");

        } catch (IOException e) {

          // ignore

        }}}

    //這是服務端的應用

    import java.net.*;

    import java.io.*;

    public class SimpleServer {

     public static void main(String args[]) {

        ServerSocket s = null;

        // 注冊服務端口為5432

        try {

          s = new ServerSocket(5432);

        } catch (IOException e) {

          e.printStackTrace();

        }

      // 運行監聽器并接收,永遠循環下去。因為服務器總要開啟的

        while (true) {

          try {

            // 等待一個連接的請求

            Socket s1 = s.accept();

            // 得到端口的輸出流

            OutputStream s1out = s1.getOutputStream();

            Bufferedwriter bw = new Bufferedwriter(

              new OutputStreamWriter(s1out));

            // 發送一個字符串

            bw.write("百家拳軟件項目研究室歡迎您!\n");

            // 關閉這個連接, 但不是服務端的socket

            bw.close();

            s1.close();

          } catch (IOException e) {

            e.printStackTrace();

          }}}}上述例子打包下載

    執行這個程序和其它的不太一樣,先用javac將兩個文件編譯之后。然后敲start開啟另一個窗口。用start命令開啟的窗口繼承了原來窗口的特性。如圖26-1所示

    26-1

    接著在原來的窗口上執行服務端程序java SimpleServer.在新窗口中執行java SimpleClient 就會看到結果了。注意如果如果在啟動服務端的時候拋出bindException則說明5432這個端口已經被別的程序占用著,改成別的端口號就可以了。通常選用端口的時候,其數字最好不要小于10241024一下的端口很多都是專用的端口。

    posted on 2007-08-09 19:54 王君 閱讀(172) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 67pao强力打造高清免费| 亚洲AV无码久久寂寞少妇| 最近中文字幕大全中文字幕免费| 精品国产日韩亚洲一区在线| 亚洲综合图片小说区热久久| 中文亚洲成a人片在线观看| 毛片a级毛片免费播放下载| 无码少妇精品一区二区免费动态 | 一级毛片a免费播放王色| 亚洲kkk4444在线观看| 亚洲视频免费观看| 亚洲精品无码不卡在线播放HE| 国产91久久久久久久免费| 日韩免费高清一级毛片在线| 免费下载成人电影| 无码国产精品一区二区免费式直播| 免费a级毛片无码a∨免费软件| 黄页网站在线观看免费| MM1313亚洲精品无码久久| 亚洲欧美国产国产一区二区三区 | 51在线视频免费观看视频| 国产精品视频白浆免费视频| 久久久久久久国产免费看 | 久久精品国产亚洲精品| 国产免费人成视频在线观看| 成年男女男精品免费视频网站| 无码专区永久免费AV网站| 免费黄色网址网站| 国产精品入口麻豆免费观看| 精品无码无人网站免费视频| 无码精品国产一区二区三区免费 | 亚洲av之男人的天堂网站| 亚洲一区无码中文字幕| 久久亚洲国产成人影院网站| 国产精品亚洲视频| 亚洲中文字幕无码久久2017| 亚洲桃色AV无码| 亚洲国产精品一区二区成人片国内 | 免费观看国产小粉嫩喷水| 免费一级国产生活片| 亚洲日韩精品无码专区网站|