더미 클라이언트 동접 천명으로 테스트하려고 했는데 서버가 자꾸 터지는 현상이 있었다.....
심지어 오류가 계속 여기저기 이상한 곳에서 계속 다르게 일어나는 오류였다...
갑자기 멀쩡히 있던 mutex가 죽지를 않나, 멀쩡하던 string에서 할당하다가 죽지를 않나...
웃긴것은 TCP 테스트만 켜놓으면 안터지고, UDP 테스트만 켜놔도 안터지는데, 둘다 키면 터지는 것이었다...
이것에 대한 원인은 이거였다.
WSARecv와 WSARecvFrom에다 넘기는 HANDLE 타입의 flags와 recvBytes가 주소값인데,
정확한 이유는 모르겠지만 Pending이나 두개의 함수가 동시에 들어갔을 때, 비동기적으로 저 주소안의 값이 바뀌어 버리는 것 같다.
그래서 저 두개의 변수를 클래스 멤버 변수로 할당하니 문제 해결~~
스택 메모리 쪽이 터지니까, 스택 메모리의 주소값을 보내는 부분에 대해서 찾아야한다! 라는 걸 빨리 생각했다면 금방 잡았을텐데.... ㅠㅜ
'졸업 작품 > 서버' 카테고리의 다른 글
CMake Boost 붙이기 (0) | 2019.07.10 |
---|---|
메세지 큐 구현 (2) | 2019.07.10 |
1학기 발표자료 - 졸작서버 개선기 (2) | 2019.06.29 |
1학기 발표자료 - 졸작서버 제작기 (0) | 2019.06.29 |
1학기 결산 (0) | 2019.06.29 |