.NET 소켓
.NET 소겟을 개발하는 것은 C/C++에서 윈속개발하는 것과 비슷하다. .NET소켓의 인터페이스는 윈속API와 유사한 메소드를 제공한다. 기본적인 사용 방법은 소켓 오브젝트를 생성해서 오브젝트의 메서드와 프로퍼티를 호출하도록 되여 있다.
.NET Socketsd에서 사용하는 이누머레이션 타입
AddressFamily – 원속의 어드레스 패밀리와 유사. IPv4는 InterNetwork, IPv6는 InterNetworkV6를
사용
ProtocolFamily – 윈속 카달로그의 어떤 프로토콜을 사용할지 표시
ProtccolType - 원속의 프로토콜 타입과 유사. IP(Internet Protocol)를 사용할 때는 IP를 사용
SelectMode - Socket의 폴링 모드를 이용할 때 사용
SocketFlags - 윈속의 소켓 플래그와 유사. Send 메서드와 Receive 메서드에서 사용
SocketOptionLevel – GetSocketOption 메서드와 SetSocketOption 메서드에서 사용하는 소켓 옵션
레벨
SocketOptionName – GetSocketOption 메서드와 SetSocketOption메서드에서 사용하는 소켓 옵션
이름
SocketShutdown - 윈속 shutdown 파라메터와 유사
SocketType - 윈속의 소켓 타입과 유사. TCP 소켓에서는 Stream을 사용
.NET의 Socket클래스의 메서드
Accept, BeginAccept, - 윈속의 accept 함수와 동일, BeginAccept와 EndAccept를 이용하여 비동
EndAccept 기 적으로 수행할 수 있다.
Bind – 윈속의 bind와 동일
Close – 윈속의 closesocket과 동일
Connect, BeginConnect, - 윈속의 connect와 동일, BeginConnect와 EndConnect를 이용하여 비동EndConnect 기적으로 수행 할 수 있다.
GetSocketOption – 윈속의 getsockpt와 동일
IOControl – 윈속의 ioctlsocket과 동일
Listen – 윈속의 listen과 동일
Poll – 소켓의 상태를 확인한다. 데이터를 읽을 수 있는지를 검사하는 등의 소켓의 상태를 검사
할 수 있다.
Receive, ReginFeceive – 윈속의 recv와 동일. BeginReceive와 EndReceive를 이용하여 비동기적으로
EndRceive 수행할 수 있다.
ReceiveFrom - 위속의 recvfrom과 동일.BeginReceiveFromr과 EndReceiveFrom을 이용하여
EndReceiveFrom 비동기적으로 수행할 수 있다.
BeginReceiveFrom
Select - 윈속의 select와 동일
Send, BeginSend, EndSend – 윈속의 send와 동일, BeginSend와 Endsend을 이용하여 비동기적으
로 수행할 수 있다.
SendTo, BeginSendTo - 윈속의 sendto와 동일. BeginSendTo와 EndSendTo를 이용하여 비동기적
EndSendTo 으로 수행할 수 있다.
SetSocketOption – 윈속의 setsockopt와 동일
Shutdown – 윈속의 shutdown과 동일
프로토콜 주소 지정
.NET소켓에서 줏 지정은 System.Net.Endpoint를 이용한다. Endpoint 클래스는 System.Net.Socket
Address 클래스를 상속받았다.
블록킹 I/O – 사용하기에 가장 쉬운 모델
Select I/O – 여러 개의 소켓을 다루는 데 있어서 블록킹 I/O의 한계를 극복하기 위하여 .NET 소
켓은 Select 메서드를 지원한다.
비동기 I/O - .NET 소켓에서 하나이상의 소켓의 I/O를 관리하기
비동기 소켓 사용한 예)
