最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#基于socket模擬http請求的方法

 更新時間:2015年06月29日 15:43:59   作者:陳傳文  
這篇文章主要介紹了C#基于socket模擬http請求的方法,實例分析了socket模擬http請求的實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了C#基于socket模擬http請求的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
class HttpHelper
{
  #region 模擬客戶端socket連接
  private static Socket ConnectSocket(string server, int port)
  {
   Socket s = null;
   IPHostEntry hostEntry = null;
   // Get host related information.
   hostEntry = Dns.GetHostEntry(server);
   // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
   // an exception that occurs when the host IP Address is not compatible with the address family
   // (typical in the IPv6 case).
   foreach (IPAddress address in hostEntry.AddressList)
   {
    IPEndPoint ipe = new IPEndPoint(address, port);
    Socket tempSocket =
    new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
    tempSocket.Connect(ipe);
    if (tempSocket.Connected)
    {
     s = tempSocket;
     break;
    }
    else
    {
     continue;
    }
   }
   return s;
  }
  #endregion
  #region 請求的主方法 request 是http請求的頭部,可以用抓包工具獲取,server可以使域名或者是ip地址,port http協(xié)議一般是80
  public static string SocketSendReceive(string request, string server, int port)
  {
   try
   {
    Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
    Byte[] bytesReceived = new Byte[655350];
    // 創(chuàng)建連接
    Socket s = ConnectSocket(server, port);
    if (s == null)
     return ("Connection failed");
    // 發(fā)送內(nèi)容.
    s.Send(bytesSent, bytesSent.Length, 0);
    // Receive the server home page content.
    int bytes = 0;
    string page = "Default HTML page on " + server + ":\r\n";
    //接受返回的內(nèi)容.
    do
    {
     bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
     page = page + Encoding.UTF8.GetString(bytesReceived, 0, bytes);
    }
    while (bytes > 0);
 
    return page;
   }
   catch
   {
    return string.Empty;
   }
  }
  #endregion
}

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
class Program
{
  public static string HeadlerInit() {
   StringBuilder sb = new StringBuilder();
   sb.AppendLine("GET http://www.baidu.com/ HTTP/1.1");
   sb.AppendLine("Host: www.baidu.com");
   sb.AppendLine("Connection: keep-alive");
   sb.AppendLine("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
   sb.AppendLine("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36");
   sb.AppendLine("Accept-Encoding:deflate, sdch");
   sb.AppendLine("Accept-Language: zh-CN,zh;q=0.8");
   sb.AppendLine("\r\n");
   //這個一定要有不然接收回來可能沒有數(shù)據(jù)
   return sb.ToString();
  }
  static void Main(string[] args)
  {
   string getStrs=HeadlerInit();
   string getHtml = HttpHelper.SocketSendReceive(getStrs, "www.baidu.com", 80);
   Console.WriteLine(getHtml);
  }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#中調(diào)用MySQL存儲過程的方法

    C#中調(diào)用MySQL存儲過程的方法

    這篇文章主要介紹了C#中調(diào)用MySQL存儲過程的方法,涉及C#數(shù)據(jù)庫操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#采用OpenXml給Word文檔添加表格

    C#采用OpenXml給Word文檔添加表格

    這篇文章主要介紹了C#采用OpenXml給Word文檔添加表格的方法,是OpenXml操作Word的一個非常實用的技巧,需要的朋友可以參考下
    2014-09-09
  • C#實現(xiàn)常見加密算法的示例代碼

    C#實現(xiàn)常見加密算法的示例代碼

    這篇文章主要為大家詳細(xì)介紹一下C#中一些常見加密算法(Base64編碼、凱撒密碼、Vigenere密碼、DES、AES)以及它們的實現(xiàn)代碼,感興趣的可以了解一下
    2022-07-07
  • C#實現(xiàn)屏幕抓圖并保存的示例代碼

    C#實現(xiàn)屏幕抓圖并保存的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)屏幕抓圖并保存的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C#中Equals方法的常見誤解

    C#中Equals方法的常見誤解

    equals方法被用來檢測兩個對象是否相等,即兩個對象的內(nèi)容是否相等。本文主要介紹的是equals方法,初學(xué)者對它幾個常見的誤解,一起來看。
    2015-10-10
  • C#獲取文件夾下所有的文件

    C#獲取文件夾下所有的文件

    這篇文章主要為大家詳細(xì)介紹了C#中獲取文件夾下所有的文件的多種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • C#服務(wù)器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn)

    C#服務(wù)器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn)

    本文主要介紹了C#服務(wù)器NFS共享文件夾搭建與上傳圖片文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 基于WPF實現(xiàn)帶明細(xì)的環(huán)形圖表

    基于WPF實現(xiàn)帶明細(xì)的環(huán)形圖表

    這篇文章主要介紹了如何利用WPF繪制帶明細(xì)的環(huán)形圖表?,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-08-08
  • C# Winfrom實現(xiàn)Skyline畫直線功能的示例代碼

    C# Winfrom實現(xiàn)Skyline畫直線功能的示例代碼

    這篇文章主要介紹了C# Winfrom實現(xiàn)Skyline畫直線功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C# .NET及Mono跨平臺實現(xiàn)原理解析

    C# .NET及Mono跨平臺實現(xiàn)原理解析

    這篇文章主要介紹了C# .NET及Mono、跨平臺實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05

最新評論

黄石市| 汝州市| 博爱县| 江津市| 彭泽县| 辽阳县| 哈尔滨市| 文昌市| 富源县| 疏附县| 栾川县| 咸丰县| 静宁县| 迁安市| 汤阴县| 兖州市| 马鞍山市| 古丈县| 沧州市| 武夷山市| 黑山县| 徐闻县| 含山县| 宿松县| 金乡县| 忻城县| 昭通市| 金华市| 扬州市| 故城县| 武威市| 美姑县| 太白县| 会同县| 邹城市| 赤峰市| 鲁山县| 开鲁县| 建湖县| 华安县| 邢台市|