程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#網絡編程(異步傳輸字符串) - Part.3(3)

C#網絡編程(異步傳輸字符串) - Part.3(3)

編輯:關於C語言

這個方法接收一個滿足協議格式要求的輸入字符串,然後返回一個數組,這是因為如果出現多次請求 合並成一個發送過來的情況,那麼就將它們全部返回。隨後簡單起見,我在這個類中添加了一個靜態的 Test()方法和PrintOutput()幫助方法,進行了一個簡單的測試,注意我直接輸入了length=13,這個是我 提前計算好的。

public static void Test() {
    RequestHandler handler = new RequestHandler();
    string input;

    // 第一種情況測試 - 一條消息完整發送
    input = "[length=13]明天中秋,祝大家節日快樂!";
    handler.PrintOutput(input);

    // 第二種情況測試 - 兩條完整消息一次發送
    input = "明天中秋,祝大家節日快樂!";
    input = String.Format
        ("[length=13]{0}[length=13]{0}", input);
    handler.PrintOutput(input);

    // 第三種情況測試A - 兩條消息不完整發送
    input = "[length=13]明天中秋,祝大家節日快樂![length=13]明天中秋";
    handler.PrintOutput(input);

    input = ",祝大家節日快樂!";
    handler.PrintOutput(input);

    // 第三種情況測試B - 兩條消息不完整發送
    input = "[length=13]明天中秋,祝大家";
    handler.PrintOutput(input);

    input = "節日快樂![length=13]明天中秋,祝大家節日快樂!";
    handler.PrintOutput(input);

    // 第四種情況測試 - 元數據不完整
    input = "[leng";
    handler.PrintOutput(input);     // 不會有輸出

    input = "th=13]明天中秋,祝大家節日快樂!";
    handler.PrintOutput(input);

}

// 用於測試輸出
private void PrintOutput(string input) {
    Console.WriteLine(input);
    string[] outputArray = GetActualString(input);
    foreach (string output in outputArray) {
        Console.WriteLine(output);
    }
    Console.WriteLine();
}

運行上面的程序,可以得到如下的輸出:

OK,從上面的輸出可以看到,這個方法能夠滿足我們的要求。對於這篇文章最開始提出的問題,可以 很輕松地通過加入這個方法來解決,這裡就不再演示了,但在本文所附帶的源代碼含有修改過的程序。在 這裡花費了很長的時間,接下來讓我們回到正題,看下如何使用異步方式完成上一篇中的程序吧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved