<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      毛毛的小窩 — 關(guān)注技術(shù)交流、讓我們一起成長

      導(dǎo)航

      利用 socket 獲取 tcp 包并解析的問題。

      服務(wù)器端代碼如下:(Java Servlet 實現(xiàn))
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       OutputStream out = response.getOutputStream();
              try {
                      response.setContentType("image/png");
                      ChartUtilities.writeChartAsPNG(out, chart, 400, 300);  // 將圖片寫入out中
                      response.flushBuffer(); 
              }
              catch (Exception e) {
                  System.err.println(e.toString());
              }
              finally {
                  out.close();
              }
      }


      ////////////////////////////////////////////////////////////////////////////////////
      // 以下是客戶端代碼,通過socket取出TCP包,并解析
      ////////////////////////////////////////////////////////////////////////////////////
              string request = "GET /PDAChart/ChartServlet?Chart=PieChart HTTP/1.1\r\n" +  // 請求消息
                               "Host: " + server + ":" + port.ToString() + "\r\n" +  // 主機和端口
                               "Connection: Close\r\n" +   // 連接狀態(tài)
                               "\r\n";
              Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
              Byte[] bytesReceived = new Byte[256];

              // 創(chuàng)建Socket對象
              Socket s = ConnectSocket(server, port);

              if (s == null)
                  return ("Connection failed");

      // 向服務(wù)器發(fā)送請求
      s.Send(bytesSent, bytesSent.Length, 0);

      // 接收服務(wù)器頁面內(nèi)容
      int bytes = 0;
      string page = "Default HTML page on " + server + ":\r\n";

      // 安裝一定的塊接收數(shù)據(jù)
      do
      {
      bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
      page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes); // 將數(shù)據(jù)轉(zhuǎn)換為字符串
      }
      while (bytes > 0);

      /////////////////////////////////////////////////////////////////////////////////////

      // 解析 tcp包 查找\r\n\r\n
      int index = page.IndexOf("\r\n\r\n");
      Console.WriteLine(page.Substring(0,index)); // 取出TCP包頭

      // 當(dāng)TCP包體的內(nèi)容也是文本的時候,沒有問題
      Console.WriteLine(page.Substring(index + 4)); // 輸出包體

      // 問題是當(dāng)包體是圖片的時候,該怎么處理呢????
      // 我是這樣考慮的:scoket接收的時候,已經(jīng)將byte安裝ASCII轉(zhuǎn)換成string,這里將string轉(zhuǎn)換為byte,然后存成文件。
      // 問題是最后存成的文件用圖片查看器打開以后是空的,什么都看不到。不過文件的大小是有的13k。
      Byte[] byteArray = Encoding.ASCII.GetBytes(page.Substring(index + 4)); // page.Substring(index + 4)為包體內(nèi)容
      using (BinaryWriter binWriter =
      new BinaryWriter(File.Open("c:\\map.png", FileMode.Create)))
      {
      binWriter.Write(byteArray);
      }
      問題:

      為什么我保存的圖片不能顯示呢?既然通過IE就可以看到圖片,就說明服務(wù)器端生成的內(nèi)容是沒有問題的。希望大家多給指點。

      posted on 2008-02-26 12:57  mjgforever  閱讀(1624)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲中文字幕一区二区| 永善县| 毛片网站在线观看| 丰满妇女强制高潮18xxxx| 久久亚洲精品中文字幕波多野结衣 | 阜阳市| 亚洲色婷婷一区二区三区| 激情综合色综合啪啪开心| 亚洲午夜福利精品无码不卡| 无码中文av波多野结衣一区| 最新亚洲人成网站在线影院| 日区中文字幕一区二区| 久久精品国产亚洲AV瑜伽| 福利网午夜视频一区二区| 亚洲av久久精品狠狠爱av| 中文字幕乱偷无码av先锋蜜桃 | 衡东县| 亚洲第一福利网站在线观看| 特级毛片在线大全免费播放| 国产激情艳情在线看视频| 特黄做受又粗又大又硬老头| 18禁午夜宅男成年网站| 成人国产精品一区二区网站公司| 亚洲日韩成人无码不卡网站| 免费99视频| 欧美极品色午夜在线视频| 在线a级毛片无码免费真人| 亚洲v欧美v日韩v国产v| 亚洲更新最快无码视频| 国产一区二区波多野结衣| 天堂av成人网在线观看| 精品午夜福利在线视在亚洲| 麻豆av一区二区三区| 91麻精品国产91久久久久| 成人综合婷婷国产精品久久蜜臀 | 国产成人无码av一区二区| 377P欧洲日本亚洲大胆| 美乳丰满人妻无码视频| 人妻va精品va欧美va| 欧美色欧美亚洲高清在线观看| 在线观看免费人成视频色|