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

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

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

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    網絡編程中的異步編程

    該文章對編寫客戶服務器應用的java程序員有所幫助,可以解決程序在對方出現故障的時候繼續穩定運行.
      目前java平臺已經廣泛應用于各類客戶/服務器系統中,在實際編程中,往往需要網絡的異步處理。比如客戶程序,如果客戶程序運行先于服務程序,則客戶程序則需要在服務程序啟動后再自動連接服務程序;在客戶程序運行中如果服務程序中途停止,則也需要在不停止的條件下,等待服務程序運行并重新連接。下面提供了一類異步編程的方法。
    網絡異步應用涉及到如下幾個關鍵點:
      客戶應用啟動后,檢測服務應用是否存在。如果不存在,則等待服務應用啟動,同時不堵塞客戶應用其他任務的執行。一旦服務應用啟動,客戶應用應該及時的與其建立連接。
      客戶應用和服務應用在數據通信中,服務應用異常退出后,客戶應用應可以檢測到服務應用的退出。同時客戶應用自動清除該通信鏈路,回到初始狀態,等待服務應用重新啟動。
      該網絡異步編程首先涉及到一個定時器和定時器事件。該定時器用于不斷的檢測網絡中客戶應用和服務應用是否連通,同時在服務應用出現異常時中止數據通信,返回到初始狀態。網絡的故障可以通過網絡方法的異常處理獲知。
      定時器包含在網絡通信類中,使得使用該類的應用感知不到定時器的存在,而方便的處理網絡信息。
    該客戶程序類如下結構:
    /*
     * Classname       : NetComm.java
     * Create Date     : 5:04:00 PM
     * Author          : Administrator
     * Product Name    : tagApp

     
    */


    package jdom;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.InetAddress;
    import java.net.Socket;

    public class NetComm implements ActionListener {

        javax.swing.Timer timer 
    = new javax.swing.Timer(3000this);

        Socket sock;

        
    private EventNotifier en;

        
    public static int net_state = 0;

        InetAddress ServerAddr;

        
    int ServerPort;

        
    public NetComm(InetAddress addr, int port) {
            ServerAddr 
    = addr;
            ServerPort 
    = port;
        }


        
    //初始化并創建socket連接
        public void NetComm_Init() {

            net_state 
    = 1;
            
    try {
                sock 
    = new Socket(ServerAddr, ServerPort);
            }
     catch (IOException e) {
                net_state 
    = 0;
            }

            timer.start();
        }

        
        
    //創建socket連接
        public void NetComm_Data() {

            
    try {
                OutputStream outputstream 
    = sock.getOutputStream();
                BufferedWriter out 
    = new BufferedWriter(new OutputStreamWriter(
                        outputstream));

                out.write(
    "java by ghf@china.com");
                out.flush();

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

                
    boolean more = true;
                
    while (more) {
                    String str 
    = in.readLine();
                    
    if (str == null{
                        more 
    = false;
                    }
     else {
                        
    // 處理數據
                        System.out.println(str);
                    }

                }

                in.close();

            }
     catch (IOException e) {
                NetComm_Close();
                net_state 
    = 0;
            }

            timer.start();
        }


        
    public void NetComm_Close() {
            
    if (sock != null)
                
    try {
                    sock.close();
                }
     catch (IOException e) {
                }

        }


        
    public void actionPerformed(ActionEvent e) {
            
    if (net_state == 0{
                NetComm_Init();
            }
     else {
                NetComm_Data();
            }

        }

    }


    在以上程序中,也可以為外部應用提供一個回調函數,以便在網絡異常或恢復正常時通知應用。服務應用的網絡通信類類似,可以放在同一類中。

    posted on 2008-03-27 16:58 都市淘沙者 閱讀(372) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 亚洲av日韩片在线观看| 91精品啪在线观看国产线免费| 毛片a级毛片免费观看免下载| 老司机亚洲精品影院| 亚洲欧洲免费视频| 亚洲邪恶天堂影院在线观看| 日韩精品无码免费专区午夜不卡| 亚洲另类激情专区小说图片| 9久热精品免费观看视频| 国产精品亚洲w码日韩中文| 在线免费视频你懂的| 亚洲va无码手机在线电影| 日韩免费无码视频一区二区三区| 亚洲综合一区二区国产精品| 最近2019免费中文字幕6| 国产精品亚洲四区在线观看| 在线jyzzjyzz免费视频| 美女免费精品高清毛片在线视| 婷婷亚洲天堂影院| 免费精品久久天干天干| 亚洲美女视频网站| 成人a视频片在线观看免费| 污污视频网站免费观看| 中文字幕精品无码亚洲字| 无码国产精品一区二区免费模式 | 亚洲成a人片在线不卡一二三区 | 亚洲日韩在线中文字幕第一页| h视频免费高清在线观看| 久久久无码精品亚洲日韩蜜桃 | 99re这里有免费视频精品| 亚洲国产美女在线观看| 国产黄色片在线免费观看| 三年片免费观看大全国语| 亚洲福利电影在线观看| 国产公开免费人成视频| 成人性生交大片免费看中文| 亚洲熟妇自偷自拍另欧美| 亚洲伊人久久精品影院| 一个人看的www在线观看免费| 一本久久免费视频| 亚洲无人区视频大全|