C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[20454] 하~ 한달간의 고생이 아직도 계속 되고 있습니다. 버그를 못 잡았어요...
나우시카 [nawusika] 882 읽음    2002-07-27 12:42
안녕하세요.

아직 초보 직장인 나우시카라고 합니다.

여기는 매일 오지만 글은 가끔씩 올리는 일반 초보입니다.

멀티쓰레딩 소켓 프로그램을 하고 있는데요.

임프님이나 고수님께 도움을 요청하고저
(도움 요청은 처음인듯 T^T)

간단히 프로그램의 구조를 소개해 드릴께요.

Main()

while(1)
{
select(...)
accept()
recv()
CreateThread()
}

기본적으로 메인의 구조입니다. 서버입장에서 select를 하고 accept()...recv를 한다음
recv한 데이터를 Thread인자에 넣어 Thread내에서 다시 다른쪽과  socket 통신을 한다음
main에서 accept한 소켓에 다시 데이터를 send하는 과정입니다.

결국 중간 입장의 게이트웨이 프로그램입니다.

아차 recv한 데이터는 Thread로 줄때는 new를 선언해서 void* 캐스팅해서 던져줍니다.

위의 게이트웨이 프로그램이 일단 서버입장이기 때문에 접속을 기다리는데요.

접속이 엄청나게 많아지면 항상은 아니지만 언젠가는 메모리 참조에러를 내면서 죽습니다.

제 생각에는 new를 선언한 데이터가 thread로 가서 내부 변수에 저장을 시킨후 delete를 하는데

그 과정에서의 문제 같습니다.

new로 선언하고 delete를 하는데 문제가 없어 보이지만 어느 순간 초고속 접속이 들어오면

메모리 참조 에러가 납니다...

임프님 도와주세요....

+ -

관련 글 리스트
20454 하~ 한달간의 고생이 아직도 계속 되고 있습니다. 버그를 못 잡았어요... 나우시카 882 2002/07/27
20470     Re.. 동기화 문제인 듯... 아제나 1019 2002/07/28
20464     Re:하~ 한달간의 고생이 아직도 계속 되고 있습니다. 버그를 못 잡았어요... Julien 935 2002/07/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.