成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

System.Net基礎類庫和示例

開發 前端
System.Net 是 .NET Framework 和 .NET Core 中提供網絡通信的基礎接口和類庫之一,它包含了許多不同的類和接口,可以提供豐富的網絡操作功能。

System.Net 是什么庫?

System.Net 是 .NET Framework 和 .NET Core 中提供網絡通信的基礎接口和類庫之一,它包含了許多不同的類和接口,可以提供豐富的網絡操作功能。

System.Net 中有哪些類和接口?

System.Net 中的類和接口可以分為高層次類和較低級別類兩類。

高層次類包括 WebClient、HttpWebRequest、FtpWebRequest、SmtpClient 等。

WebClient:用于 HTTP/HTTPS 協議的下載與上傳,如從遠程服務器獲取 Web 頁面或文件。示例代碼:

WebClient client = new WebClient();
string downloadString = client.DownloadString("https://www.example.com");
Console.WriteLine(downloadString);

HttpWebRequest:提供了更細粒度的 HTTP 操作控制,可以設置請求頭、請求方法、代理等屬性。示例代碼:

CodeHttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.example.com/index.html");
request.Method = "GET";
request.ContentType = "text/html";
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
string content = reader.ReadToEnd();
Console.WriteLine(content);

FtpWebRequest:用于 FTP 協議的上傳與下載。示例代碼:

CodeFtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/test.txt");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("username", "password");
byte[] fileContents = Encoding.UTF8.GetBytes("This is a test file.");
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();

SmtpClient:用于 SMTP 協議的發送郵件。示例代碼:

CodeMailMessage mail = new MailMessage();
mail.From = new MailAddress("sender@example.com");
mail.To.Add("recipient@example.com");
mail.Subject = "Test Mail";
mail.Body = "This is a test message.";
SmtpClient client = new SmtpClient("smtp.example.com", 25);
client.Credentials = new NetworkCredential("username", "password");
client.EnableSsl = true;
client.Send(mail);
Console.WriteLine("Mail sent successfully.");

較低級別類包括 Socket、TcpClient、UdpClient、WebRequest 等。

Socket:提供了訪問 TCP、UDP、RAW、IP 等協議的網絡通信功能。示例代碼:

byte[] buffer = new byte[1024];
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("www.example.com", 80);
string request = "GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n\r\n";
socket.Send(Encoding.UTF8.GetBytes(request));
int count = socket.Receive(buffer);
string response = Encoding.UTF8.GetString(buffer, 0, count);
Console.WriteLine(response);

TcpClient:用于訪問 TCP 協議的連接。示例代碼:

TcpClient client = new TcpClient("www.example.com", 80);
Stream stream = client.GetStream();
string request = "GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n\r\n";
byte[] buffer = Encoding.UTF8.GetBytes(request);
stream.Write(buffer, 0, buffer.Length);
buffer = new byte[1024];
int count = stream.Read(buffer, 0, buffer.Length);
string response = Encoding.UTF8.GetString(buffer, 0, count);
Console.WriteLine(response);

UdpClient:用于訪問 UDP 協議的連接。示例代碼:

UdpClient client = new UdpClient();
client.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.100"), 1234));
string message = "Hello World";
byte[] data = Encoding.UTF8.GetBytes(message);
client.Send(data, data.Length);
IPEndPoint remoteEP = null;
data = client.Receive(ref remoteEP);
string response = Encoding.UTF8.GetString(data);
Console.WriteLine(response);

WebRequest:提供了一個通用的請求/響應機制,可以通過不同的協議(HTTP、FTP、FILE 等)下載或上傳數據。示例代碼:

WebRequest request = WebRequest.Create("https://www.example.com/index.html");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
string content = reader.ReadToEnd();
Console.WriteLine(content);

System.Net 中有哪些高級用法?

System.Net 中還有一些高級用法,包括 HttpListener、WebSocket、HttpClient、IPAddress、Dns、NetworkStream 等,這些類和接口可以更加靈活地實現網絡通信。

HttpListener:可以實現一個基于 HTTP 協議的服務器,并監聽來自客戶端的請求。示例代碼:

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8080/");
listener.Start();
Console.WriteLine("Listening...");
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
string responseString = "<html><body>Hello World!</body></html>";
byte[] buffer = Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
listener.Stop();

WebSocket:提供了 WebSocket 協議的客戶端和服務器實現,使得 web 應用程序可以輕松地進行雙向通信。示例代碼:

using System.Net.WebSockets;
using System.Threading.Tasks;

ClientWebSocket webSocket = new ClientWebSocket();
await webSocket.ConnectAsync(new Uri("wss://echo.websocket.org/"), CancellationToken.None);
await Task.WhenAll(Receive(webSocket), Send(webSocket));
await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None);

async Task Receive(ClientWebSocket webSocket)
{
    byte[] buffer = new byte[1024];
    while (webSocket.State == WebSocketState.Open)
    {
        WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
        Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, result.Count));
    }
}

async Task Send(ClientWebSocket webSocket)
{
    string message = "Hello World";
    byte[] buffer = Encoding.UTF8.GetBytes(message);
    await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
}

HttpClient:提供了 HTTP 協議的客戶端實現,支持 GET、POST 等請求方法。示例代碼:

using System.Net.Http.Headers;

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("https://api.example.com/users");
if (response.IsSuccessStatusCode)
{
    string content = await response.Content.ReadAsStringAsync();
    Console.WriteLine(content);
}

IPAddress:表示 IP 地址,可以用于 IP 地址的解析和比較。示例代碼:

IPAddress ipAddress1 = IPAddress.Parse("192.168.1.1");
IPAddress ipAddress2 = IPAddress.Parse("192.168.1.100");
Console.WriteLine(ipAddress1 < ipAddress2); // True

Dns:提供了域名系統(DNS)解析功能,可以將域名轉換為 IP 地址。示例代碼:

IPHostEntry hostEntry = Dns.GetHostEntry("www.example.com");
foreach (var ipAddress in hostEntry.AddressList)
{
    Console.WriteLine(ipAddress.ToString());
}

NetworkStream:表示用于網絡通信的數據流,可以用于處理 TCP 或 UDP 連接。示例代碼:

TcpClient client = new TcpClient("www.example.com", 80);
NetworkStream stream = client.GetStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write("GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n\r\n");
writer.Flush();
StreamReader reader = new StreamReader(stream);
string response = reader.ReadToEnd();
Console.WriteLine(response);
責任編輯:姜華 來源: 今日頭條
相關推薦

2021-03-22 09:56:01

Java基礎System類Static

2009-09-02 18:14:33

C# WebClien

2010-01-12 16:20:44

VB.NET類

2009-07-28 17:38:02

ASP.NET多態抽象基類

2010-01-05 17:16:28

.NET Framew

2009-10-28 17:08:57

VB.NET數據庫開發

2009-10-28 10:31:59

VB.NET Syst

2009-12-18 16:39:59

ADO.NET基礎類

2021-12-23 09:30:35

Java 字節流 Java 基礎

2009-10-26 09:04:35

VB.NET數據庫基礎

2009-10-27 15:21:45

VB.NET文件處理

2021-12-24 07:56:10

Cmake動態庫應用程序

2013-08-15 16:48:39

.Net基礎

2009-10-28 10:15:48

VB.NET框架類庫

2009-08-27 10:14:04

LINQ基礎概念

2021-04-05 08:11:04

Java基礎Calendar類DateFormat類

2009-10-28 10:23:48

VB.NET定時器

2009-08-05 18:42:05

xsd.exe

2009-12-29 13:46:50

ADO.NET類庫

2009-09-02 18:28:55

.NET框架ESBasic
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品日韩一区二区 | 欧美嘿咻| 久久精品国产亚洲夜色av网站 | 欧美成视频 | 亚洲欧洲一区 | 一区二区三区日韩精品 | 久久国产精99精产国高潮 | 日本成人中文字幕在线观看 | 国产午夜视频 | 国产欧美日韩精品一区二区三区 | 欧美一级在线免费观看 | 午夜电影一区 | 国产羞羞视频在线观看 | 国产美女福利在线观看 | 久久久久久成人 | 久久精品国产a三级三级三级 | 精品国偷自产在线 | 美女爽到呻吟久久久久 | 自拍偷拍第一页 | 久久综合伊人 | 欧美毛片免费观看 | 精品不卡 | 黄色一级免费观看 | 一级片子 | 日日夜夜精品 | 国产精品久久久久久久久久软件 | 中文字幕在线一区 | 6080亚洲精品一区二区 | 色婷婷国产精品综合在线观看 | 中文字幕一区在线观看视频 | 国产日韩欧美一区二区在线播放 | 亚洲综合视频 | 中文字幕在线观看一区 | 九九色九九| 久久久久亚洲精品中文字幕 | 成人做爰www免费看视频网站 | 综合五月婷 | 精品成人佐山爱一区二区 | 日本成人片在线观看 | 日本一本视频 | 91精品国产91久久久久久密臀 |