네트워크 통신용 표준 함수(시스템콜) 집합

네트워크 표준

 

C# Socket

더보기
  API / 클래스 설명 제공 기능 OS/PL
Unix Socket API 네트워크 표준 API Low Level 의 소켓 프로그래밍

TCP, UDP 등 다양한 네트워크에 사용
Unix(+ Ubuntu, Redhat..)
Window WinSock2 API Socket API 윈도우 버전 Window(C/C++)
C#
.NET
Sockets WinSock2 API C# 버전 Sockets 닷넷은 WinSock2 API 호출 Window(C#)
TcpClient 내부적으로
Sockets 클래스 사용
TCP, UDP 전용
TcpListner
UdpClient

 

WSA

Windows Socket API (Winsock)

1991년 시작된 윈도우 소켓 프로젝트는 버클리 유닉스 (BSD Unix) 소켓 인터페이스를 윈도우용으로 개조하여  거의 모든 특징을 포괄한다.

 

하지만 윈속의 사용방법과 문법이 BSD 소켓의 경우와 유사하기는 하더라도 윈속과 BSD 소켓용으로 작성된 프로그램은 서로 호환성이 없으며 이 두 가지 소켓 응용 프로그램이 호환성을 갖으려면 많은 부분을 수정하여야 한다.

유닉스 Socket API C언어 소켓 로직 윈도우 WinSock2 API C언어 소켓 로직은 호환되지 않으므로, 별도로 구현하여 호환성 작업야 한다. 

 

초기 윈속(WinSock 1.1 )은 winsock.dll 의 형태로 설치되어 사용하였고, Windows 95에서 OS의 일부로 추가되었으며, 현재는 윈속2(WinSock 2.x)를 사용하고 있다.

일반적으로 C/C++ 프로그램에서 WinSock API를 사용한다.

 

C# .NET 네트워크 클래스 .NET Framework은 WinSock API 를 사용하기 위해 Wrapper 클래스들을 제공한다.

 핵심 클래스로 System.Net.Sockets 네임스페이스의 TcpClient, TcpListner, UdpClient, Socket 클래스들이 있다.

 

소켓 통신 실행 흐름

 

비동기 소켓 통신 실행 흐름