2016. 2. 14. 05:21ㆍ프로그래밍/C#
비동기 네트워크 메서드
System.Net 네임스페이스에 System.Net.Sockets의 Socket 클래스에 정의되어 있다.
MSDN
https://msdn.microsoft.com/library/System.Net.Sockets.Socket_methods(v=vs.110).aspxAcceptAsync
1 2 3 | public bool AcceptAsync( SocketAsyncEventArgs e ) | cs |
클라이언트의 연결을 수락한다.
ReceiveAsync
1 2 3 | public bool ReceiveAsync( SocketAsyncEventArgs e ) | cs |
메시지를 수신한다.
SendAsync
1 2 3 | public bool SendAsync( SocketAsyncEventArgs e ) | cs |
메시지를 전송한다.
ConnectAsync
1 2 3 | public bool ConnectAsync( SocketAsyncEventArgs e ) | cs |
서버에 접속을 수행한다.
매개 변수
e
Type: System.Net.Sockets.SocketAsyncEventArgs
The System.Net.Sockets.SocketAsyncEventArgs object to use for this asynchronous socket operation.
반환 값
Type: System.Boolean
Returns true if the I/O operation is pending.The SocketAsyncEventArgs.Completed event
on the e parameter will be raised upon completion of the operation.
Returns false if the I/O operation completed synchronously.The SocketAsyncEventArgs.
Completed event on the e parameter will not be raised and the e object passed as a parameter
may be examined immediately after the method call returns to retrieve the result of the operation.
요약하자면 비동기 IO 작업은 true를 리턴하고 작업이 완료 되었을 시 SocketAsyncEventArgs.Completed 이벤트가 발생한다는 것.
동기라면 false를 리턴하고 Completed 이벤트가 발생하지 않고 직접 처리해주어야 한다.
비동기 네트워크 파라메터 SocketAsyncEventArgs
비동기 소켓 작업에 사용되는 클래스이다.
IO 작업을 수행한 뒤 해당 작업이 완료될 때, Completed 이벤트를 통해 작업 완료 통보가 들어간다.
Completed 이벤트에서 호출되는 메서드를 정의해주면 된다.
1 | void on_connect_completed(object sender, SocketAsyncArgs e) { ... } | cs |
SocketAsyncEventArgs 객체는 비동기 메서드를 호출할 때 파라메터로 넣어줬던 그 객체다.
'프로그래밍 > C#' 카테고리의 다른 글
직렬화 (0) | 2015.08.03 |
---|---|
Delegate (2) | 2015.08.03 |
데이터 보관하기 (0) | 2015.08.03 |
C#이란? (0) | 2015.08.03 |
가비지 컬렉션 (0) | 2015.07.28 |
ref와 out 차이 (0) | 2015.06.23 |
처음만드는 C# 기초 입출력 (0) | 2015.06.22 |