|
안녕하세요?
혼자힘으로 해 볼려고 많이 노력해 봤는데.. 안되는군요.
고수님들의 조언을 바랍니다.
제가 문제를 가지고 있는 파일을 첨부합니다.
[상황]
- 인디 컴포넌트를 사용하는 C/S프로그램
- 인디 클라이언트 소켓으로 데이터를 읽을때는 쓰레드를 이용
- 데이터의 흐름은 클라이언트->서버->클라이언트 (일종의 에코기능)
- 클라이언트가 서버로 데이터를 전송할때는 for문을 써서 50개 이상의 데이터를 날림
- 서버는 OnExcute이벤트가 떨어질때 클라이언트로 부터 도착한 메시지를 읽음 그리고 클라이언트로 재전송
- 클라이언트는 쓰레드를 통해서 항상 소켓을 감시하다가 도착한 메시지를 읽음
[문제점]
- 클라이언트가 자신이 for문을 통해 전송한 메시지를 모두 에코받고 종료하면 => 아무문제 없슴
- 클라이언트가 자신이 보낸 메시지를 모두 받지 못하고 종료하면 => 블루스크린 T_T
[나름대로 힌트]
- 쓰레드를 종료하기전에 클라이언트 소켓의 버퍼를 완전히 지운다음 ShowMessage("");를 호출하니 아무런 문제없었는데.. ShowMessage코드가 없으니까 에러가 뜨는군요. ShowMessage말고 ::Sleep을 해봤는데.. 여전히 에러..
[나의목표]
- 인디를 사용하여 1:N관계의 P2P엔진을 구현함
- P2P 서버와 클라이언트는 수시로 접속을 끊었다가 접속하는 관계
[현재나의상태]
- 암울함
- 미치고
- 팔짝뛰겠슴
그럼 미리 감사드리며.. 현명한 답변이나.. 알기쉬운 예제를 부탁합니다.
|