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

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

  • 포르토스 채택답변수 (49)
  • 최대8자 채택답변수 (32)
  • 도조 채택답변수 (27)
  • 능글이3 채택답변수 (14)
  • 주백통통 채택답변수 (13)
  • kid4 채택답변수 (12)
  • 첨단조 채택답변수 (12)
  • 인의예지신 채택답변수 (12)
  • 그리그 채택답변수 (8)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 285
    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
    58816 [토렌트]  도와주세요. (1) 노둣돌
    300 00:03 42
    58815 [토렌트]  다운을 받을 수가 없네요. (1) 스샷첨부 노둣돌
    200 10-22 47
    58814 [토렌트]  다운을 받을 수가 없네요. (2) 스샷첨부 노둣돌
    200 10-22 47
    58813 [쇼핑]  아이패드에 쓸만한 뾰족한 터치펜 추천좀 해주세요. (1) 하늘Maru
    200 10-22 62
    58812 [기타]  lg 멤버쉽점수 어디에쓰는건가요? (3) 흑영비
    200 10-22 35
    58811 [교육/학문]  간단한 수학문제 (5) 스샷첨부 감야내티
    200 10-22 128
    58810 [취미/생활]  하이샤시에서 유리를 교체하려고 하는데... (4) 앨빈과토플러
    500 10-22 64
    58809 [교육/학문]  일본어 뉘앙스 차이 (7) 스카이도르
    200 10-22 145
    58808 [컴퓨터/인터넷]  윈도우 7 winsxs 폴더 지워도 되나요? (5) 스샷첨부 非專門家
    200 10-22 87
    58807 [게임]  Xbox360 게임 PC구동되나요? (2) 최고BK
    200 10-22 105
    58806 [컴퓨터/인터넷]  종종 자동로그인 같은게 다 풀려있네요... (3) 아듸위뮈
    200 10-22 73
    58805 [기타]  부동산 임대차 계약서 (공란) 문제입니다. 계약서 사진 있어요. (8) 스샷첨부 e뻔한세상
    200 10-22 108
    58804 [기타]  군 보급담배... (12) 살나뽕빠야
    1000 10-22 231
    58803 [TV/영상]  TVN 황금거탑 반응이랑 시청률 어땠었나요? (2) 깊은구름
    200 10-22 90
    58802 [기타]  유머엽기 게시판에 올라왔던 자동가입 방지 문자 (1) 히히하하오오…
    200 10-22 90
    58801 [컴퓨터/인터넷]  램 인식 질문 드립니다 (7) 스샷첨부 간지본능
    200 10-22 101
    58800 [쇼핑]  나이키 트레이닝복 좀 찾아주세요 (1) 스샷첨부 Pasadena
    300 10-22 112
    58799 [TV/영상]  영화 영상 720 1080질문이요 (10) 푸졸스홈런
    200 10-22 122
    58798 [교육/학문]  영작 부탁드립니다 (4) 호봉이
    1000 10-22 70
    58797 [기타]  영어질문이요 (1) 예스노예스하…
    200 10-22 55
    58796 [컴퓨터/인터넷]  휴지통안에 파일이 삭제가 불가능합니다 (1) 굴러라포도
    200 10-22 92
    58795 [컴퓨터/인터넷]  cpu 실시간 모니터링이라고 작은 파란색 아이콘이 있는데 아시는분 (3) 스샷첨부 데코모리
    200 10-22 98
    58794 [기타]  xd 리모콘이랑 산타페 리모콘이랑 호환 되나요?? 미도리v
    200 10-22 36
    58793 [취미/생활]  일반택배, 화물택배 궁금해요 (2) 순진소녀
    200 10-22 89
    58792 [쇼핑]  이런 1인용 쇼파..정확히 아시는 분? (3) 울산교회
    200 10-22 217
    58791 [컴퓨터/인터넷]  폴더 안에 있는 이미지 파일의 크기를 보는 방법 질문 입니다. (2) 하안군
    200 10-22 64
    58790 [컴퓨터/인터넷]  Lotus Notes 문의 (1) 봇대2
    1000 10-22 44
    58789 [기타]  핸드폰 할부원금 확인하는 방법. (2) 즐이다
    500 10-22 182
    58788 [토렌트]  자료실에 못 올리나요? (3) 로젠바흐
    200 10-22 87
    58787 [토렌트]  옛날에 있던 쿠폰 게시판은 어디로 간건가요? (2) nikedo
    200 10-22 41
     1  2  3  4  5  6  7  8  9  10  다음