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

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

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

    tbwshc

    java初學(xué)者實(shí)踐教程-網(wǎng)絡(luò)程序

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

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

        實(shí)踐:

     

    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("協(xié)議是 "+url.getProtocol());

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

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

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

        }}

    /*

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

       getProtocol()

       getHost()

       getFile()

       getPort()

    */ 

     

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

        實(shí)踐:

     

    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();

        }} 

     

        URL和URLConnection類提供了較高層次的網(wǎng)絡(luò)訪問。有時候需要進(jìn)行較低層次的訪問。編寫C/S模型的程序時,就要使用Socket通信機(jī)制了。因?yàn)樵诰W(wǎng)絡(luò)上不一定非得訪問文件。

        實(shí)踐:

     

    //先寫個客戶端的應(yīng)用

    import java.net.*;

    import java.io.*;

    public class SimpleClient {

     public static void main(String args[]) {

        try {

          // 5432端口打開服務(wù)器連接

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

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

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

          BufferedReader br = new BufferedReader(

            new InputStreamReader(s1.getInputStream()));

          // 讀取輸入的數(shù)據(jù)并且打印在屏幕上

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

          //當(dāng)完成時關(guān)閉流和連接

          br.close();

          s1.close();

        } catch (ConnectException connExc) {

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

        } catch (IOException e) {

          // ignore

        }}}

    //這是服務(wù)端的應(yīng)用

    import java.net.*;

    import java.io.*;

    public class SimpleServer {

     public static void main(String args[]) {

        ServerSocket s = null;

        // 注冊服務(wù)端口為5432

        try {

          s = new ServerSocket(5432);

        } catch (IOException e) {

          e.printStackTrace();

        }

      // 運(yùn)行監(jiān)聽器并接收,永遠(yuǎn)循環(huán)下去。因?yàn)榉?wù)器總要開啟的

        while (true) {

          try {

            // 等待一個連接的請求

            Socket s1 = s.accept();

            // 得到端口的輸出流

            OutputStream s1out = s1.getOutputStream();

            BufferedWriter bw = new BufferedWriter(

              new OutputStreamWriter(s1out));

            // 發(fā)送一個字符串

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

            // 關(guān)閉這個連接, 但不是服務(wù)端的socket

            bw.close();

            s1.close();

          } catch (IOException e) {

            e.printStackTrace();

          }}}} 

     

    下載 target=_blank>上述例子打包下載

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

        圖26-1

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

    posted on 2012-08-02 17:02 chen11-1 閱讀(832) 評論(0)  編輯  收藏

    主站蜘蛛池模板: 亚洲第一区精品日韩在线播放| 永久免费在线观看视频| 高清国语自产拍免费视频国产| 亚洲欧洲精品久久| 91在线老王精品免费播放| 无码乱人伦一区二区亚洲一| 两性色午夜视频免费播放| 亚洲日韩av无码| 国产精品免费观看调教网| 91天堂素人精品系列全集亚洲| 日日麻批免费40分钟无码 | 9久热精品免费观看视频| 国产精品亚洲w码日韩中文| 国产成人无码免费网站| 亚洲国产精品成人精品无码区 | 人人狠狠综合久久亚洲88| 黄色网址在线免费| 久久精品国产亚洲AV无码偷窥| 日本最新免费网站| 亚洲色成人网站WWW永久四虎| 在线免费观看国产视频| 一级毛片在线免费视频| 久久精品亚洲一区二区| 99久久免费看国产精品| 亚洲夂夂婷婷色拍WW47| 亚洲精品无码久久久久AV麻豆| 叮咚影视在线观看免费完整版| 久久亚洲精品无码VA大香大香| 免费观看黄网站在线播放| 丰满亚洲大尺度无码无码专线| 亚洲精品成人片在线观看| 久久大香伊焦在人线免费| 中中文字幕亚洲无线码| 亚洲成a人片在线播放| 午夜网站在线观看免费完整高清观看| 亚洲国产中文在线二区三区免| 日韩精品亚洲专区在线观看| 久久免费观看国产精品88av| 亚洲色偷偷色噜噜狠狠99网| 亚洲欧洲∨国产一区二区三区| 成人超污免费网站在线看|