WinSock과 .NET 클래스
소켓 API
네트워크 프로그래밍에 있어 소켓(socket)은 네트워크 표준 API로 여겨지고 있는데,
소켓(socket)은 버클리 유닉스 (BSD Unix)에서 처음 개발되었으며, 다양한 OS에서 네트워크 표준으로 사용되고 있다.
예를 들어, 소켓 API는 가장 대중적인 TCP/IP를 비롯하여 AppleTalk, IPX 프로토콜 등에서 사용된다.
WinSock API
마이크로소프트는 버클리 유닉스 소켓 API를 윈도우즈에서 구현한 WinSock 1.1 (Windows Sockets API)을 1992년에 출시하였다.
이때 윈속(WinSock)은 winsock.dll 의 형태로 설치되어 사용하였는데 Windows 95에서 OS의 일부로 추가되었으며,
현재는 WinSock 2 (WinSock 2.x 통칭) 을 사용하고 있다.
일반적으로 WinSock API를 사용하기 위해서는 C/C++ 프로그램을 사용한다.
.NET 네트워크 클래스
.NET Framework은 WinSock API 를 사용하기 위해 Wrapper 클래스들을 제공하고 있는데, 핵심 클래스로
System.Net.Sockets 네임스페이스 안에 있는 TcpClient, TcpListner, UdpClient, Socket 클래스들이 있다.
TcpClient는 TCP 클라이언트를 위한 기능들을 제공하고, TcpListner는 TCP 서버에 대한 기능을 제공한다.
UdpClient는 UDP 클라이언트와 서버 기능을 제공하고, Socket 클래스는 Low Level의 소켓 프로그래밍 기능을 제공한다.
TcpClient, TcpListner, UdpClient는 내부적으로 Socket 클래스를 사용하고, Socket 닷넷 클래스는 WinSock API를 호출한다.