본문 바로가기

Programming/MFC

CAsyncSocket Connect() 문제점

이 글은 추후에 참고하기위해 작성되었다.

정확하지 않은 내용이 있을 수 있으니 그저 참고용도로만 보길 바란다.

 

winsock 또는 CSocket을 이용하여 socket통신을 개발하는 경우에는 connect() 함수의 반환 값에 따라 서버와 클라이언트가 정상적으로 연결되었는지 안되었는지를 알 수 있다.

 

하지만 CAsyncSocket을 이용한 경우 connect()함수의 반환값에 따라 정상적으로 처리가 되었는지 안되었는지 알 수 없는 문제가 있다.

 

이 때에는 GetLastError() 함수를 통해 에러값을 확인하고 OnConnect()를 재정의 함으로써 해결할 수 있다는 글이 있지만 실제로 시도해본 결과 정상 연결을 확인하는 것에는 무리가 있음을 확인하였다.

필자가 확인 못한 내용이 있을 수도 있다.

 

필자는 서버와 클라이언트 연결 과정에서 이를 확인하는것을 실제 통신을 하는 단계에서 하는것으로 선회하여 해결할 수 있었다.

 

1. Create

2. Connect

3. Send

 

Send()의 경우 정상적으로 처리가 된다면 보낸 내용의 크기반큼을 반환하므로 이를 통해 정상 연결이 되어 있는지 안되어 있는지 확인하였다.

'Programming > MFC' 카테고리의 다른 글

Dialog 영역 명칭  (0) 2021.01.28
Progress Bar Color  (0) 2020.12.15
Skin  (0) 2020.12.10
OnNcPaint( ) vs OnPaint( )  (0) 2020.09.11
Console 창  (0) 2020.07.14