홈으로 | 로그인 | 무료회원가입 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기

질문과답변 월간 최다답변채택 회원

  • donn 채택답변수 (57)
  • 도조 채택답변수 (31)
  • 나도익명 채택답변수 (16)
  • 주백통통 채택답변수 (15)
  • 기영노 채택답변수 (13)
  • lemo 채택답변수 (10)
  • 하늘Maru 채택답변수 (10)
  • 곰나라탱 채택답변수 (8)
  • adev 채택답변수 (7)
       
    [컴퓨터/인터넷]

    C언어 소켓프로그래밍 질문입니다.(소스첨부)

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 365
    nono.zip (4.8K), 2013-10-08 01:48:42
    컴파일은 
    서버 : gcc -o server server_2.c HandleClient_2.c DieWithError.c
    클라 : gcc -o client client_2.c DieWithError.c


    소스파일 묶어서 첨부했습니다.

    파일 업로드 하는것과 디렉토리 바꾸는 것을 구현중인데
    클라가 한번 돌면 죽어버리는건 양해해주시구요..;
    파일업로드 하는데 왜그런지 모르겠는데 자꾸 세그폴트가 나네요.... 이걸 getchar로 받지 않고 아예 메뉴번호를 줘버리면
    세그폴트는 안나는데 파일이 주고받아지질 않고...
    디렉토리 바꾸는건 디렉토리 이름 받기 전에 그냥 넘어가버리고....

    뭔가 버퍼 문제인것 같은데 짐작이 안되네요. fflush(stdin)도 해보고 scanf getchar fgets 별걸 다 써봤는데 안됩니다 ㅠㅠㅠ
    귀찮으시겠지만 제발 도와주세요 ㅠㅠㅠ

    시그윈 사용중입니다.
    요청자가 자신의 600포인트를 걸었습니다. 답변이 채택되면 300포인트를 드립니다.

    글쓴이 2013-10-08 (화) 02:17
    void changeDir(DIR *dp, int clntSocket)
    {
    char echoBuffer[RCVBUFSIZE];
    Message message;
    memset(&echoBuffer, 0, sizeof(echoBuffer));
    memset(&message, 0, sizeof(Message));

    if ((recv(clntSocket, echoBuffer, RCVBUFSIZE, 0)) <0)
    DieWithError("Msg recv() failed");

    memcpy((char *)&message, echoBuffer, sizeof(message));

    message.MsgType=CDA;
    printf("%s\n", message.contents);
    dp=opendir(message.contents);

    memcpy(echoBuffer, &message, sizeof(message));

    if (send(clntSocket, echoBuffer, RCVBUFSIZE, 0) <0)
    DieWithError("Msg Send Error");
    else
    {
    printf("%s\n", message.contents);
    getcwd(message.contents, 64);
    printf("%s\n", message.contents);
    }
    }


    changeDir에서 메시지 받는걸 깜빡했습니다... 이건 추가했는데도 여전히 안되는건 마찬가지네요
    C:\\를 입력하면 멎어버리네요ㅠㅠ
    너닉넴 2013-10-08 (화) 03:09
    void HandleClient(int clntSocket)
    {
    char echoBuffer[RCVBUFSIZE];
    Message message;
    DIR *dp=NULL;

    memset(&echoBuffer, 0, sizeof(echoBuffer));

    프로그램 안한지 오래되서 좀 그런데 memset(&echoBuffer, 0, sizeof(echoBuffer)); => memset(echoBuffer, 0, sizeof(char) * RCVBUFSIZE);

    이렇게 해야하지 않나요?

    memset(&echoBuffer, 0, sizeof(echoBuffer)); 이렇게 하면 echoBuffer의 주소값이 0이 될걸요?
         
         
    글쓴이 2013-10-08 (화) 07:54
    감사합니다. 근데 그것말고도 문제가 있는것 같아요....
    recv 받는 곳에서 죄다 블럭이 걸려버리네요 ㅠㅠ
              
              
    너닉넴 2013-10-08 (화) 11:10
    블럭이 recv부분에서 걸려서 대기하는 것이라면 정상적인 동작입니다. recv 함수 자체는 비동기 함수가 아니기 때문에 데이터를 받을 때 까지 해당 함수에서 대기합니다.
    송송송님 2013-10-08 (화) 04:00
    &echoBuffer 라고 쓰게되면 포인터의 주소 자체를 뜻하고 포인터가 가르키는 주소와는 다릅니다.
    너닉넴님이 써 주신것처럼
    echoBuffer 라고 적어주시는게 맞습니다.
       

    질문과답변 질문상태  |   | 
     
    번호 제목 글쓴이 상태 포인트 날짜 조회
    [공지]  ※ 토렌트사이트질문,자료요청 금지 (질문자,답변자 같이 제재합니다) 이토렌트
    0 08-25
    [공지]  ※ 카톡유령방 및 초대장관련 게시물 등록금지 (자료요청 게시판이용) 이토렌트
    0 11-11
    [공지]  ※ 질문과답변 게시판 이용안내 이토렌트
    0 03-28
    77767 [TV/영상]  한국 예능프로 한장면 찾습니다. "아니야, 이거 배야" (1) rainof
    500 04:28 118
    77766 [TV/영상]  다음팟 플레이어 화면깨짐 질문요 스샷첨부 따꺼어
    1000 03:08 60
    77765 [기타]  슈가맨 17회 윤하씨가 늦은 후회 부를때 나오는 가사 폰트 좀 알려주세요 스샷첨부 큐르피아
    500 02:19 98
    77764 [TV/영상]  좀비랜드라는 드라마는 시드 없나요? Zombieland The Series (1) 개객
    500 01:40 91
    77763 [컴퓨터/인터넷]  히타치 외장하드 쓰고계신분 계신가요? 쟈카리
    500 00:25 110
    77762 [컴퓨터/인터넷]  전자기기(외장하드?)에 대해 궁금한게 있습니다. (1) Mayzuai
    300 00:07 81
    77761 [컴퓨터/인터넷]  운영체제 설치 (4) 안타노
    200 02-09 150
    77760 [게임]  화면이 깜빡깜빡 거리는데 해결방법이 있을까요? odlid
    3000 02-09 59
    77759 [컴퓨터/인터넷]  보안 프로그램에서 나온 것들에 관한 질문입니다. 스샷첨부 쪼로쪼로
    200 02-09 58
    77758 [게임]  사무라이 쇼다운 시리즈 (3) 초베지트
    2000 02-09 212
    77757 [TV/영상]  AOA 짧은치마 무대영상 (2) 초베지트
    3000 02-09 344
    77756 [게임]  레지던트이블 레벨레이션2 질문요 (1) ヤシン
    1500 02-09 64
    77755 [교육/학문]  싱싱한 꼴뚜기 나오는 꿈 (1) 느낌아니까3
    500 02-09 91
    77754 [컴퓨터/인터넷]  가상윈도우에 이지드라이버팩 다운 받았는데 질문!!!!!! (18) 스샷첨부 도마위고기
    200 02-09 93
    77753 [기타]  루트 익스플로러 질문입니다 (12) 『Black』
    600 02-09 82
    77752 [컴퓨터/인터넷]  이토에서 영상 토렌트파일하고 자막파일있는데 자막 다운받을때 문제가 생기네요 (3) ABC초콜릿
    200 02-09 68
    77751 [컴퓨터/인터넷]  가상 윈도우에 USB 연결이 안됩니다. 포인트 왕창 드립니다!!! 제발!! 해결 좀!! (21) 스샷첨부 도마위고기
    500 02-09 125
    77750 [기타]  로또 판매점 허가 관련 질문. (2) 음식
    500 02-09 230
    77749 [게임]  모바일게임 테일시커 겜셔틀 쿠폰 좀 부탁드립니다. (1) hwert
    500 02-09 47
    77748 [기타]  판타지 책 질문입니다. (7) 눈물결
    500 02-09 76
    77747 [경제/재테크]  해외쇼핑이 가능한 농협카드 (2) 아이스크림우…
    1000 02-09 166
    77746 [게임]  이런 게임을 알고 계신가요? (2) 롤로노아w
    754 02-09 234
    77745 [컴퓨터/인터넷]  설치형 웹하드 업체 질문 (1) 그건어떠니
    300 02-09 102
    77744 [컴퓨터/인터넷]  윈7>>> 이곳 설정 어떻게 놓고 사용하시는지요? (2) 스샷첨부 좋은뮤직
    500 02-09 165
    77743 [TV/영상]  저사양 컴퓨터에서 1080p 화질 동영상 재생 시 밀림 현상. (5) 뉴비냐
    500 02-09 209
    77742 [토렌트]  집에서 랜선을 하나 더 뽑았는데요 (4) 해타
    700 02-09 275
    77741 [교육/학문]  고민인데 들어주세요 (2) DooDoo2
    200 02-09 104
    77740 [컴퓨터/인터넷]  고3 졸업했는데 컴퓨터 언제 사는게 좋을까요 (8) 엘리자베스의…
    200 02-09 291
    77739 [컴퓨터/인터넷]  리커버리 복구후 파티션? (1) 효린
    700 02-09 110
    77738 [컴퓨터/인터넷]  사이트관리할때 회원들 비밀번호 운영자가 볼수있나요? (2) 나인뮤지스은…
    200 02-09 191
     1  2  3  4  5  6  7  8  9  10  다음