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

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

  • 포르토스 채택답변수 (46)
  • 최대8자 채택답변수 (27)
  • 도조 채택답변수 (25)
  • 첨단조 채택답변수 (14)
  • kid4 채택답변수 (11)
  • QvQvQv 채택답변수 (11)
  • 헤잇 채택답변수 (10)
  • 능글이3 채택답변수 (10)
  • 배덕이 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 289
    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
    59165 [컴퓨터/인터넷]  한자변환이 안됩니다 .ㅜㅜ (1) 스샷첨부 세월의돌
    500 18:11 24
    59164 [기타]  트로트곡 제목 ㅠ_ㅠ 백곰반
    200 18:06 19
    59163 [컴퓨터/인터넷]  EASEUS Partition Master 파티션나누기 (6) 스샷첨부 품위위
    200 18:02 18
    59162 [기타]  자동차리스 장단점좀 자세하게 경남산도
    200 18:01 20
    59161 [컴퓨터/인터넷]  페이스북 좋아요/팔로우 관련 설정질문이요 우포효효아래
    200 17:53 20
    59160 [경제/재테크]  현대차 영맨 골탕먹이거나 엿맥이는 방법 알려줘요 (1) 라나가나
    1000 17:51 63
    59159 [취미/생활]  mp3 곡순서 지정하는 방법좀 알려주세요 (3) enrilj
    300 17:31 43
    59158 [컴퓨터/인터넷]  윈7 에서 파티션매직같은 프로그램 뭐있나요? (6) 품위위
    200 17:04 43
    59157 [컴퓨터/인터넷]  mp3 앨범아트 검색 적용 프로그램 SouthPaw
    200 16:12 49
    59156 [교육/학문]  혹시 건축 허용오차에 대해 아시는분 계신가요? (3) 하이구아
    200 15:10 80
    59155 [기타]  은행에서 돈 찾을 때 (4) godhldma
    200 14:42 211
    59154 [컴퓨터/인터넷]  윈도우7 설치 오류 (3) 세상속에서
    200 14:27 123
    59153 [컴퓨터/인터넷]  모니터 20만원 이하로 추천좀 해주세요~ (5) 드록신창양
    200 13:54 97
    59152 [컴퓨터/인터넷]  아웃룩 문의 드립니다. 날으는차차
    200 13:27 51
    59151 [컴퓨터/인터넷]  청소기 카티아 파일을 구하고 싶습니다 (1) 로디너투
    500 12:44 77
    59150 [컴퓨터/인터넷]  엑셀 값구하는 방법좀 알려주세요 (8) 스샷첨부 약먀
    500 12:44 130
    59149 [건강/의학]  바르는 진통 소염제 신약 괜찮은거 없나요? (2) 김리칸
    200 12:14 65
    59148 [쇼핑]  갤럭시 S3 터치펜을 사볼까 합니다. (3) 일딴튀어
    200 11:39 100
    59147 [취미/생활]  음... 미용실을 다녀왔는데도 힘드네요... (4) 계란과자
    200 10:38 185
    59146 [컴퓨터/인터넷]  노트북 사양 좀 봐주세요 (3) 유너우왔
    500 10:32 81
    59145 [교육/학문]  영작 한 줄 부탁 드립니다.. (3) 양치기총각
    200 08:29 83
    59144 [컴퓨터/인터넷]  안드로이드 어플중 SWF 화일 볼수 있는 플레이어 추천 좀 해주세요. (1) 대물맨
    200 08:10 54
    59143 [컴퓨터/인터넷]  엑셀 특정 칸의 수를 넣어서 계산할때 (3) 플라타
    300 02:42 96
    59142 [TV/영상]  쿨까당 94회 141019 내 정보는 내가 지킨다? 이거 맞나요? 이거 올려주세요! LulzSEC
    300 02:00 28
    59141 [컴퓨터/인터넷]  윈10 좋나요? (14) 스샷첨부 돼지고기김치…
    200 01:31 343
    59140 [취미/생활]  공장초기화 후 에러가 납니다. (1) qkrrldud
    200 01:30 135
    59139 [교육/학문]  컴활 1급 실기가 그리 어렵나요? (6) 강철꼬치
    200 10-30 222
    59138 [기타]  이사진 여자 이름알수잇을까요? (5) 스샷첨부 고인
    200 10-30 634
    59137 [기타]  전투기 이름과 성능, 용도가 어떻게 되는지요 ? (4) 스샷첨부 섶다리
    200 10-30 204
    59136 [쇼핑]  안심클릭 결제시 확인버튼이 안보임 (15) 스샷첨부 아리가싸
    200 10-30 95
     1  2  3  4  5  6  7  8  9  10  다음