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
[41436] 윈속 소켓통신에서 초보적인 질문..
박기홍 [] 893 읽음    2005-08-11 19:45
또 이런 초보적인 질문을 합니다..
이해가 안가는 부분이 있어서 인데요..

아주 간단하게 c/s 프로그램을 만들었습니다.
쓰레드를 이용해서 여러명이 접속도 가능하게 했구요..

제가 궁금한것은.. 서버에서

accpet 부분을 쓰레드 안에서 시행하게 했습니다.
그리고 accept에 성공하면
또 다른 쓰레드로 recv()를 돌려서 클라이언트에게
받은 메시지가 있으면 메시지 박스를 띄었구요..
아래를 보시면 이해가 더 빠르실거에요..

[[ thread1 ]]
for(;;) {
     if( accept성공 )
     {
          MessageBox(접속성공);
          thread2 호출;
     }
}

[[ thread2 ]]
for(;;) {
     if( 받은데이터가 있으면)
     {
          MessageBox(받은데이터 출력);
     }
}


이런 식으로 했는데..
클라이언트 프로그램을 여러개 띄어놓고 테스트를 해보면..
클라이언트들이 접속할때마다 서버에서는 "접속성공"이라는 메시지를 보여줍니다.

하지만 클라이언트의 (테스트용으로 만든) 메시지를 보내기 버튼을 누르면
마지막에 접속에 성공한 클라이언트의 메시지만 뿌려주고요..
그 전에 접속해있던 클라이언트의 메시지보내기버튼을 누르면 아무 반응도 안하더군요..


제가 생각할때는 이런식으로 하면 당연히 될줄 알았는데.. -_-;;
항상 도움만  받아서 죄송합니다~

방법에 문제가 있다거나 하는 부분을 가르쳐주시면 감사하겠습니다. ^^

+ -

관련 글 리스트
41436 윈속 소켓통신에서 초보적인 질문.. 박기홍 893 2005/08/11
41466     Re:윈속 소켓통신에서 초보적인 질문.. 유영인 Cuperido 982 2005/08/14
41580         Re:Re:윈속 소켓통신에서 초보적인 질문.. 이성제 924 2005/08/22
41584             Re:Re:Re:윈속 소켓통신에서 초보적인 질문.. evergreen 971 2005/08/22
41581             Re:Re:Re:윈속 소켓통신에서 초보적인 질문.. 유영인 Cuperido 1086 2005/08/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.