게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
mfc 소켓 close에 대해 질문해봅니다.
게시물ID : programmer_2576짧은주소 복사하기
작성자 : 키큰사람
추천 : 0
조회수 : 2020회
댓글수 : 0개
등록시간 : 2014/04/11 09:29:01
안녕하세요 개발 한달차 프로그래머입니다. 하하..

한 프로그램에서 프로토콜을 추가하던중 문제가 생겼습니다.

메인쓰레드에서 init 함수(소켓이 있으면 닫고, 없으면 생성) 를 호출하는 과정에서
void PASCAL CAsyncSocket::KillSocket(SOCKET hSocket, CAsyncSocket* pSocket)
{
ASSERT(CAsyncSocket::LookupHandle(hSocket, FALSE) != NULL);

_AFX_SOCK_THREAD_STATE* pState = _afxSockThreadState;

CAsyncSocket::DetachHandle(hSocket, FALSE);
if (pState->m_hSocketWindow != NULL)
{
::PostMessage(pState->m_hSocketWindow, WM_SOCKET_DEAD,
(WPARAM)hSocket, 0L);
CAsyncSocket::AttachHandle(hSocket, pSocket, TRUE);
}
}

요 부분에서  close하던중 죽고 맙니다ㅜ..
인터넷에 찾아보니 쓰레드를 생성한 곳에서 close를 시키라는데 일단 이것저것 해봣는데 잘 이해가 안가서요..

처음 초기화 할때는 정산적으로 소켓이 생성되서 통신이 되는데 재기동할때 다시 클로즈 할때 문제가 발생되네요.
조언좀 부탁드립니다!
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호