언어/C#

SocketAsyncEventArgs

에린_1 2024. 7. 31. 09:54
728x90

SocketAsyncEventArgs

  • .NET의 비동기 소켓 프로그래밍에서 사용되는 클래스이다. 이 클래스는 네트워크 소켓 작업을 효율적으로 처리하기 위해 설계되었으며, 특히 높은 성능과 확장성을 요구하는 서버 응용 프로그램에서 유용하다.
  • Socket 통신을 하기 때문에 Socket이고, 비동기로 작업ㅇ르 하기 때문에 Async이다. 작업을 완료하면 실행되는 완료 콜백 함수를 가질 수 있어 Event이고, Socket 클래스의 비동기 함수에 인수로 들어가기 때문에 Args라고 생각하면 된다.
  • Socket 클래스의 함수 중 뒤에 Async가 붙는 함수들은 모두 아래의 형태로 되어 있다.
public bool *** Async(SocketAsyncEventArgs e); 
  • SocketAsyncEventArgs를 활용한 비동기 통신을 할 때의 대략적인 순서는 SocketAsyncEventArgs 객체를 만들어 필요한 설정을 하고, Socket 함수에 인수로 넣어 호출하는 방식으로 진행되야 한다.
  • ‘System.Net.Sockets’ 네임스페이스에 포함되어 있다.

멤버

  • Completed
    • 이벤트 핸들러. 작업이 완료되면 이 곳에 추가된 함수가 실행된다.
  • SetBuffer(byte[], int, int)
    • 함수. 객체에 담을 데이터의 크기를 설정한다.
  • RemoteEndPoint
    • 프로퍼티. IP와 포트번호를 갖는 EndPoint 클래스를 갖는다.
  • AcceptSocket
    • 프로퍼티. 현재 작업과 연결된 소켓을 갖는다. Socket 리턴
  • UserToken
    • 프로퍼티. 현재 작업과 연결된 사용자(소켓) 또는 애플리케이션 개체를 갖는다. object 리턴.
  • SocketError
    • 프로퍼티. 소켓의 각종 에러 상태를 갖는데, Success도 있어 에러가 없을을 알 수 있다.
  • Buffer
    • 프로퍼티. byte[] 송수신될 데이터를 갖는다.
  • BytesTransferred
    • 프로퍼티. 소켓에서 전송된 바이트 수를 리턴한다.
  • offset
    • 프로퍼티. Buffer가 참조할 데이터의 오프셋이다.

참조

https://siku314.tistory.com/75

728x90

'언어 > C#' 카테고리의 다른 글

LINQ(Language Integrated Query), AsEnumerable Method  (0) 2024.07.31
ConstainsKey, AddOrUpdate 메서드, Stopwatch  (0) 2024.07.31
as/ is/ this/ base  (0) 2024.07.31
Interlocked  (0) 2024.07.31
ArraySegment  (0) 2024.07.31