소켓 API
WinSock API
.NET 네트워크 클래스
WinSock API를 사용하기 위해 Wrapper 클래스를 제공하고있다
<aside> ♟️ Wrapper 클래스 : 기본 자료타입 들을 객체로 다루기 위해서 사요하는 클래스
</aside>
System.Net.Scokets 네임스페이스 안에 TcpClient, TcpListner, UdpClient, Socket 클래스 존재
TcpClient : TCP 클라이언트 기능
TcpListner : TCP 서버 기능
UdpClient : UDP 클라이언트 + 서버 기능
Socket : Low Level의 소켓 프로그래밍 기능
<aside> ⚒️ TcpClient, TcpListner, UdpClient는 내부적으로 Socket 클래스를 사용함 + Socket 클래스는 WinSock API를 호출함
</aside>
트레일러 : 데이터를 전달할 때 데이터의 마지막에 추가하는 정보
IP 주소
System.Net.IPAddress
IPAdress 클래스 사용해서 IP주소 파싱해서 객체 생성
// using System.Net;
IPAddress ip1 = IPAddress.Parse("192.169.1.13");
바이트 배열이나 정수를 직접 생성자에 넣어서도 IPAdress 객체 생성 가능
IPAddress ip2 = new IPAddress(new byte[] {192, 168, 1, 13});
IPAddress ip2 = new IpAddress(218212544);
Console.WriteLine(ip3.ToString()); // "192.168.1.13" 출력
IPAddress 메서드
// 유용한 IPAddress 메서드
IPAddress ip = IPAddress.Parse("216.58.216.174");
byte[] ipbytes = ip.GetAddressBytes(); // IP를 바이트 배열로
IPAddress ipv6 = ip.MapToIPv6(); // IPv4를 IPv6로 매핑
DNS
EndPoint
IPAddress ip = IPAddress.Parse("74.125.28.99");
IPEndPoint ep = new IPEndPoint(ip, 80);
Console.WriteLine(ep.ToString()); // "74.125.28.99:80" 출력