정리가 필요한 카테고리(추후 정리)/C#,Unity

C#] System.Net.Sockets 네임스페이스

TwinParadox 2017. 2. 19. 00:30
728x90

### System.Net.Sockets 네임스페이스



네트워크에 대한 엑세스를 엄격하게 제어해야하는 개발자를 위해서

Windows Socket(Winsock) 관련 인터페이스를 제공하는 네임스페이스.

해당 네임스페이스 하위의 TcpClient, TcpListener 및 UdpClient 클래스는

TCP/UDP 방식으로 인터넷에 연결하기 위한 자세한 정보를 캡슐화하여

네트워크 서비스에 대한 클라이언트 연결 제공 및 클라이언트에서 연결을 수신하는 서비스를 제공함.




## NetworkStream 클래스


네트워크 액세스를 위한 내부 데이터 스트림 제공.

NetworkStream을 만들려면 연결된 Socket을 제공해야 함.

제공된 Socket에 대해 NetworkStream이 가지는 FileAccess 사용 권한을 정지할 수도 있으며,

기본적으로 NetworkStream을 닫아도 제공된 Socket은 닫히지 않음.

제공된 Socket을 닫기 위한 권한은 ownsSocket 매개 변수의 값으로 true 지정하면 가능.



- BeginRead : NetworkStream에서 비동기 읽기를 시작

- BeginWrite : 스트림에 비동기 쓰기 시작

- Close : NetworkStream 개체를 닫음

- EndRead : 비동기 읽기의 끝을 처리

- EndWrite : 비동기 쓰기의 끝을 처리

- Flush : 스트림에서 데이터를 플러시하며, 나중에 사용하도록 예약

- Read : NetworkStream에서 데이터를 읽음

- ReadByte : 스트림에서 바이트를 읽고 스트림 내 위치를, 한 바이트씩 앞으로 이동하거나 스트림 끝인 경우 -1 반환

- ToString : Object를 나타내는 String 반환

- Write : NetworkStream에 데이터 작성

- WriteByte : 스트림의 현재 위치에 바이트를 쓰고, 스트림 내 위치를 1바이트씩 앞으로 이동




## TcpClient 클래스


TCP 네트워크 서비스에 대한 클라이언트 연결 제공.

동기 블로킹 모드로 연결해 네트워크를 통해 스트림 데이터를 주고 받기 위한 간단한 메서드 제공.

이 클래스를 통해 연결하고 데이터 교환을 진행하려면,

TCP ProtocolType으로 만들어진 TcpListener나 Socekt이 들어오는 연결 요청을 수신해야 함.



- BeginConnect : 원격 호스트 연결에 대한 비동기 요청을 시작

- Close : 내부 연결을 닫지 않고 이 TcpClient 인스턴스 삭제

- Connect : 지정된 호스트 이름과 포트 번호를 사용해 원격 TCP 호스트에 클라이언트 연결

- Dispose : TcpClient에서 사용되는 관리되지 않는 리소스 해제, 관리되는 리소스 선택적 해제

- EndConnect : 들어오는 연결 시도를 비동기적으로 받아들임

- Finalize : TcpClient 클래스에서 사용한 리소스 해제

- GetStream : 데이터 주고 받기 위한 NetworkStream 반환

- ToString : 현재 Object를 나타내는 String 반환




## TcpListener 클래스


TCP 네트워크 클라이언트에서 연결 수신.

블로킹 동기 모드에서 들어오는 연결 요청을 수신하고 받아들이는 메서드 제공.

TcpClient나 Socket을 사용해 TcpListener와 연결 가능.

TcpListener를 만들려면 IPEndPoint와 로컬 IP주소 및 포트 번호(혹은 포트번호만)를 사용.

내부 서비스 공급자가 해당 값을 할당하게 하려면 로컬 IP주소를 Any로 지정하고, 로컬 포트 번호를 0으로 지정.

이렇게 선택한 경우 소켓에 연결한 후 LocalEndPoint 속성을 사용해 할당된 정보 확인 가능.



- AcceptSocket : 보류 중인 연결 요청을 받아들임

- AcceptTcpClient : 보류 중인 연결 요청을 받아들임

- BeginAcceptSocket : 들어오는 연결 시도를 받아들이는 비동기 작업 시작

- BeginAcceptTcpClient : 들어오는 연결 시도를 받아들이는 비동기 작업 시작

- EndAcceptSocket : 들어오는 연결 시도를 비동기적으로 받아들이고, 원격 호스트 통신을 처리할 새 Socket 만듦

- EndAcceptTcpClient : 들어오는 연결 시도를 비동기적으로 받아들이고, 원격 호스트 통신을 처리할 새로운 TcpClient를 만듦

- Finalize : GC(Garbage Collector)에서 Object를 회수하기 전에 Object가 리소스를 해제하고 다른 정리 작업 수행 가능하게 함

- Start : 들어오는 연결 요청의 수신 시작

- Stop : 수신기 폐쇄

- ToString : 현재 Object를 나타내는 String 반환

728x90