Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การทำงานกับเครือข่าย (Networking) ใน C#

.NET Framework มีการนำเสนอบริการเครือข่ายที่เป็น Managed Code แบบชั้นๆ (Layered) และขยายได้ ใช้ผ่านเนมสเปซ System.Net

คลาสสำคัญใน System.Net

1. Uri - แทนที่อยู่ทรัพยากรแบบเอกภาพ

Uri uri = new Uri("https://www.example.com/");
WebRequest request = WebRequest.Create(uri);

2. WebRequest / WebResponse - ฐานของการร้องขอ/ตอบสนอง HTTP

รองรับโปรโตคอล HTTP, HTTPS, FTP, File

3. การเข้ารหัส SSL/TLS

  • URI เริ่มต้น https:// → ใช้ SSL อัตโนมัติ
  • URI เริ่มต้น https:// → การเชื่อมต่อไม่เข้ารหัส
  • FTP ใช้ SSL: ตั้งค่า EnableSsl = true ก่อนเรียก GetResponse()
string uri = "https://www.example.com/";
WebRequest w = WebRequest.Create(uri);

string ftpUri = "ftp://ftp.example.com/new.txt";
FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(ftpUri);
ftp.EnableSsl = true;
ftp.Method = WebRequestMethods.Ftp.DeleteFile;

4. Dns - การแก้ไขชื่อโฮสต์

using System;
using System.Net;

class Program {
    static void Main() {
        string hostName = Dns.GetHostName();
        Console.WriteLine("Hostname: " + hostName);
        
        IPHostEntry hostEntry = Dns.GetHostEntry(hostName);
        IPAddress[] addresses = hostEntry.AddressList;
        
        for (int i = 0; i < addresses.Length; i++) {
            Console.WriteLine("IP Address {0}: {1}", i, addresses[i]);
        }
        Console.ReadLine();
    }
}

คลาสยอดนิยมใน System.Net

คลาสหน้าที่
HttpClientHTTP client แบบทันสมัย (แนะนำสำหรับ .NET Core/5+)
WebClientSimple HTTP/FTP operations (Legacy)
TcpClient/TcpListenerTCP socket communication
UdpClientUDP communication
ServicePointManagerจัดการการเชื่อมต่อ HTTP/HTTPS

แนวทางปฏิบัติสมัยใหม่

สำหรับ .NET Core / .NET 5+ แนะนำใช้ HttpClient และ System.Net.Http แทน WebRequest ซึ่งเป็น Legacy API