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
[17074] Re:제 도전 소켓명령..
화이트 [] 1011 읽음    2002-03-31 22:26
모라 님이 쓰신 글 :
: 거참 ftp를 이용하여 내용물을 제쪽으로 보내는데,
: 이번엔 받는가 싶더니 buf2의 내용물을 보니 알수없는 것들만 받네요.
: 그리고 다시 1024만큼 받고 accept에서 멈추어 버리네요.
: 제 이번 소스에도 문제가 있는건가요?
: c++지만 사실 빌더로 쓸거라 이쪽에 물어봅니다.
:
:
: -------------------------------------------------------
:
: ascii
: quote port xxx.xxx.xxx.xxx.xx.xx (제쪽 아이피 4643포트.)
: quote list -aR
:
: 제쪽 서버 대기 소스------------------------------------------------------------
:  SOCKET s;
:             SOCKADDR_IN addr;
:             SOCKADDR_IN clientAddr;
:
:             char buf2[1024];
:             int i,len,len2;
:             int nClientAddrLen;
:
:             s=socket(AF_INET, SOCK_STREAM, 0);
:
:    if ( s != INVALID_SOCKET ){
:
:
:                addr.sin_family = AF_INET;
:                addr.sin_port = htons(4643);
:                addr.sin_addr.s_addr = inet_addr("xxx.104.xx.23");
:
:
:         if( bind(s, (LPSOCKADDR)&addr, sizeof(addr)) != SOCKET_ERROR ){
:
:                 FILE *fp;
:                 fp = fopen("test.pck", "wb");
:
:            if(listen(s,10)!=SOCKET_ERROR){
:
:                   nClientAddrLen=sizeof(clientAddr);                
:
:       while(1){
:                     len3=accept(s,(LPSOCKADDR)&clientAddr,&nClientAddrLen);
:
:                     if(len3<=0) break;
:                    read(len3, buf2, sizeof(buf2));
:                    fwrite(buf2, sizeof(buf2), 1, fp);
:                   
:             }
:                        fclose(fp);


음 혹시나 해서 실험을 해보니 먼저 답변이 틀렸군요^^
그래서 먼저답변을 지웁니다.

요즘은 콤포넌트로 하다보니까 착각을 했네요.
accept(); 문장에서 connection 을 계속 기다리고 있네요

            len3=accept(s,(LPSOCKADDR)&clientAddr,&nClientAddrLen);

            if(len3<=0) return;
            else
            {
              while(1)
              {
                    read(len3, buf2, sizeof(buf2));
                    fwrite(buf2, sizeof(buf2), 1, fp);
                   
                     if(빠져나오는 조건) break;
              }
           }
      fclose(fp);

이런식이 될거 같네요


+ -

관련 글 리스트
17071 제 도전 소켓명령.. 모라 889 2002/03/31
17074     Re:제 도전 소켓명령.. 화이트 1011 2002/03/31
17100         Re:Re:제 도전 소켓명령.. 모라 833 2002/04/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.