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

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

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

    魚躍于淵

    First know how, Second know why !
    posts - 0, comments - 1, trackbacks - 0, articles - 49

    Java進階:基于Socket的Java網絡編程集粹

    Posted on 2008-09-20 08:57 魚躍于淵 閱讀(92) 評論(0)  編輯  收藏 所屬分類: 精品網摘

    [摘要] 其實,簡單的分析一下,就可以看出客戶和服務通訊的主要通道就是Socket本身,而服務器通過accept方法就是同意和客戶建立通訊.這樣當客戶建立Socket的同時。服務器也會使用這一根連線來先后通訊,那么既然如此只要我們存在多條連線就可以了。
    [關鍵字]
    Socket 網絡編程
    其實,簡單的分析一下,就可以看出客戶和服務通訊的主要通道就是Socket本身,而服務器通過accept方法就是同意和客戶建立通訊.這樣當客戶建立Socket的同時。服務器也會使用這一根連線來先后通訊,那么既然如此只要我們存在多條連線就可以了。那么我們的程序可以變為如下:
    那么下面的問題是如何使用線程.首先要做的事情是創建線程并使得其可以和網絡連線取得聯系。然后由線程來執行剛才的操作,要創建線程要么直接繼承Thread要么實現Runnable接口,要建立和Socket的聯系只要傳遞引用就可以了.而要執行線程就必須重寫run方法,而run方法所做的事情就是剛才單線程版本main所做的事情,因此我們的程序變成了這樣:

    import java.net.*;
    import java.io.*;

    public class MultiUser extends Thread{
      private Socket client;

      public MultiUser(Socket c){
       this.client=c;
      }

      public void run(){
    try{
        BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
        PrintWriter out=new PrintWriter(client.getOutputStream());
        //Mutil User but can parallel
        while(true){
         String str=in.readLine();
         System.out.println(str);
         out.println("has receive....");
         out.flush();
         if(str.equals("end"))
          break;
    }
        client.close();
    }catch(IOException ex){
    }finally{
       }
      }

      public static void main(String[] args)throws IOException{
       ServerSocket server=new ServerSocket(5678);
       while(true){
       //transfer location change Single User or Multi User
       MultiUser mu=new MultiUser(server.accept());
       mu.start();
       }
      }
    }



    客戶端代碼:

    import Java.net.*;
    import Java.io.*;

    public class Client{
    static Socket Server;

    public static void main(String[] args) throws Exception
    {
    Server=new Socket (InetAddress.getLocalHost(),5678);
    BufferedReader in=new BufferedReader(new InputStreamReader(Server.getInputStream()));
    PrintWriter out=new PrintWriter(Server.getOutputStream());
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
    while(true)
    {
    String str=wt.readLine();
    out.println(str);
    out.flush();
    if(str.equals("end"))
    {
    break;
    }
    System.out.println(in.readLine());
    }
    Server.close();
    }
    }

    這段程序是接受客戶的鍵盤輸入,并把信息輸出到服務端。并把"end"作為退出的命令

    以上程序完成了兩臺計算機的簡單通信。

    主站蜘蛛池模板: 亚洲视频一区在线| 自怕偷自怕亚洲精品| 国产成人精品久久亚洲高清不卡| 青娱乐免费在线视频| 一级特黄a免费大片| 亚洲不卡AV影片在线播放| 精品国产日韩亚洲一区在线 | 色吊丝免费观看网站| 国产真实伦在线视频免费观看| 亚洲高清中文字幕免费| 久久这里只有精品国产免费10| 亚洲成a∨人片在无码2023| 午夜无遮挡羞羞漫画免费| 亚洲色大成网站www久久九| 麻豆国产人免费人成免费视频| 亚洲精品成a人在线观看☆| 亚洲 自拍 另类小说综合图区| 4虎1515hh永久免费| 666精品国产精品亚洲 | 成人电影在线免费观看| 亚洲国产精品无码成人片久久| 国产免费无码一区二区 | 在线免费观看一区二区三区| 亚洲国产高清国产拍精品| 五月婷婷亚洲综合| 成人免费一区二区三区| 亚洲五月激情综合图片区| 女人18一级毛片免费观看| 怡红院亚洲红怡院在线观看| 亚洲无码精品浪潮| 免费无码又爽又刺激高潮视频| 亚洲人成网国产最新在线| 亚洲成人影院在线观看| 99在线观看免费视频| 亚洲av成人中文无码专区| 亚洲日韩欧洲乱码AV夜夜摸| 120秒男女动态视频免费| 美国毛片亚洲社区在线观看| 亚洲国产精品无码中文字| 最近中文字幕mv免费高清电影 | 伊人久久亚洲综合影院首页|