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

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

  • 토렌트최고 채택답변수 (60)
  • 이토님 채택답변수 (48)
  • 유랑천하 채택답변수 (28)
  • 이화에월담하고 채택답변수 (21)
  • 뮌하우젠남작 채택답변수 (19)
  • donn 채택답변수 (13)
  • 겨울숲 채택답변수 (13)
  • 페이마임 채택답변수 (13)
  • 능글이3 채택답변수 (13)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 425
    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 03-28
    97469 [기타]  유선 몰래카메라 탐지기 원리가 뭔가요?? (1) 몰라두되요1
    200 17:57 27
    97468 [컴퓨터/인터넷]  해외메일 만들만한 곳 없나요? 뉴페이스
    500 17:43 31
    97467 [토렌트]  윈도우10 잘되나요 (4) kid4
    444 17:32 64
    97466 [전자기기]  핸드폰 앱 질문입니다. (1) 스샷첨부 엄서요1
    200 17:24 24
    97465 [기타]  유튜브 4k 2160 설정이 안보이는데... (2) 한올티
    300 15:45 120
    97464 [컴퓨터/인터넷]  안드로이드로 유투브보는데 영상막바지에 채널홍보아이콘? 스샷첨부 ddwed
    500 14:53 55
    97463 [게임]  플스3 전원선은 어디서 사야하나요? (3) wowow
    300 14:32 106
    97462 [컴퓨터/인터넷]  윈도우 10 설치질문입니다. (5) 『카프카』
    500 14:18 87
    97461 [전자기기]  전화 개통하려하는데.... (1) DeNiro00
    300 14:18 71
    97460 [기타]  혹시 배농사 지으시는 분? (2) 오목눈이d
    300 13:46 104
    97459 [컴퓨터/인터넷]  한글 설정 관련하여 질문드립니다 (1) 바빙크
    250 13:33 49
    97458 [기타]  이사진 처자 누군지 아시는분? (2) 프라이스
    500 12:59 406
    97457 [기타]  외할머니 깨서 동사무소 에서 준 교통카드 사용법 을 (3) 34580734
    1000 11:53 293
    97456 [취미/생활]  우표 (2) 카본스틸맨
    200 11:18 109
    97455 [경제/재테크]  부동산관련 질문드립니다.ㅠㅠ (5) 부루마우물
    200 10:41 104
    97454 [컴퓨터/인터넷]  컴퓨터 부팅시 문제 (4) bobaman
    200 07:27 185
    97453 [교육/학문]  시대정신 = 사조 ? (2) 과르메달
    300 06:48 141
    97452 [음악]  노래 좀 찾아주세요 퀸 콜드플레이 뮤즈 같은 밴드 잔잔한 곡같은데 녹음파일올렸어요 (5) 템포크
    200 03:24 103
    97451 [TV/영상]  TV에 USB메모리 꽂아서 영화를 볼려고 하는데요... (9) 우루나
    1000 01:51 330
    97450 [컴퓨터/인터넷]  그라픽 카드 질문입니다 (3) 내친구돌쇠
    200 08-19 203
    97449 [TV/영상]  고전 SF영화 제목 찾고있습니다. (3) 수리아
    400 08-19 189
    97448 [컴퓨터/인터넷]  카비레이크 7세대 7600 윈도우10 설치 질문입니다. (8) 스샷첨부 『카프카』
    500 08-19 173
    97447 [건강/의학]  암4기. 서울로 가야만 할까요? (7) 마로비
    300 08-19 400
    97446 [게임]  안드로이드게임 Akashic Portal 하시는분 있으신지 재즈잭래빗
    200 08-19 76
    97445 [기타]  박신자컵 여자농구는 무료인가요? 으뜸회오리
    400 08-19 104
    97444 [기타]  페이스북 게시물에 팔로잉창 뜨게하는 법좀 알려주세요 dddacc
    600 08-19 58
    97443 [경제/재테크]  부동산겨약 보증금 인상에 대한 문의입니다 (3) 쿠폰북
    400 08-19 86
    97442 [컴퓨터/인터넷]  외장하드 인식이 안되네요.. (1) 스샷첨부 이리y
    500 08-19 92
    97441 [음악]  MCH 음악 파일은 어떻게 들어야 하죠? (1) 오롤롤
    300 08-19 101
    97440 [취미/생활]  싱거미싱 구입하려고 하는데 미싱기 좀 아시는분 좀 알려주세요. (3) 스샷첨부 건축학개론
    1000 08-19 113
     1  2  3  4  5  6  7  8  9  10  다음