현재 HalfNetwork의 일부 기능이 VC++ 10과 문제가 있습니다.

HalfNetwork에 있는 테스트 서버와 클라이언트를 VC++ 10에서 빌드 후 실행 해보면 접속과 동시에 접속이 끊어집니다( 제 기억으로는 Beta1까지는 문제가 없었던 것 같습니다..).

 

이 문제에 대해서 Javawork님께 물어본 결과 정확하게는 HalfNetwork의 문제이기 보다는 ACE VC++ 10의 문제라고 합니다.

 

문제의 부분은 Proactor 방식에서 Async(비동기) 방식으로 Connect를 하면 접속과 동시에 끊어집니다. ACE에서도 동일한 문제가 발생하고 있다고 합니다.

 

현재 해결 방법은 VC++ 10을 사용하지 않던가(다른 버전에서는 문제가 없습니다), VC++ 10을 사용하는 경우Proactor 방식으로 사용하는 경우 Connect를 사용하지 말아야 합니다.

 

클라이언트에서 HalfNetwork를 사용하는 경우는 Reactor 방식을 사용해도 충분하기 때문에 큰 문제가 없지만 서버의 경우는 Proactor 방식을 사용해야 하는데, 서버 대 서버끼리 연결을 해야 하는 경우가 있기 때문에 VC++ 10을 사용하는 경우는 꽤 문제가 크다고 생각합니다.

 

해결 방법은 두 가지가 있는 것 같습니다. 하나는 ACE 라이브러리를 만드는 측에서 이 문제를 해결해주는 것으로 그러면 자동으로 해결 됩니다. 두 번째는 HalfNetwork에서 Proactor 방식을 사용하여 Connect를 할 때 동기 방식으로 연결할 수 있는 기능을 제공하는 것입니다.

 

위에 제가 언급한 두 개의 방법 중 해결책이 나올 때까지 서버 대 서버가 연결되는 구조의 서버를 만드는 경우는 VC++ 10으로는 HalfNetwork를 사용하지 않는 것이 좋습니다.

 

저작자 표시
신고
by 흥배 2010.06.13 20:08