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

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

  • 각갓갓각 채택답변수 (134)
  • vssdfere 채택답변수 (73)
  • 아치미슬 채택답변수 (40)
  • hacienda 채택답변수 (30)
  • 나도익명 채택답변수 (21)
  • belcowin 채택답변수 (20)
  • 공묵 채택답변수 (16)
  • 최대8자 채택답변수 (14)
  • StealTh 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 302
    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
    63143 [컴퓨터/인터넷]  곰플레이어로 동영상을 돌렸을 때 어느날 재생속도가 갑자기 빨라지는 현상 스샷첨부 권스방
    300 22:38 33
    63142 [쇼핑]  발렌타인 17년산 어떻게 해야 싸게 살 수 있나요? (4) BlowUp
    300 22:22 78
    63141 [취미/생활]  일렉 음악 곡명을 찾습니다 쥬프린
    1000 22:12 29
    63140 [교육/학문]  공부계획표 양식 (1) 박은빈짱
    300 21:44 59
    63139 [게임]  게임 게시판에 있는 프로젝트 카스 핸들 잠김문제... 앱등
    200 21:39 25
    63138 [게임]  유로트럭2 자유시점 하는방법. 천사같은피부
    200 21:02 53
    63137 [컴퓨터/인터넷]  30만원선 노트북 추천부탁드려요. (1) 븅신보면짖는…
    500 20:53 74
    63136 [컴퓨터/인터넷]  바이두 질문입니다 킬링타임1
    500 19:58 64
    63135 [게임]  스카이림 현상금 (2) 순대전골
    200 19:19 181
    63134 [컴퓨터/인터넷]  동영상플레이어에 코덱추가 가능한가요 ? (3) 섶다리
    200 19:10 58
    63133 [교육/학문]  대학 교양 질문입니다~ (3) 꼬마
    200 18:19 74
    63132 [컴퓨터/인터넷]  고장난 lg노트북 lg전자에서 매입하는데 질문드립니다. (11) rayray
    500 18:08 118
    63131 [컴퓨터/인터넷]  컴퓨터 파워에 관한 질문입니다! 출력이 다른데 바꿔 달아도 되는건지.. (4) 백다마내기
    200 17:53 60
    63130 [쇼핑]  휴대폰 고수님들 (1) 카카로또
    200 17:38 75
    63129 [TV/영상]  유튜브나 다음tv팟에 동영상을 업로드 (3) 파노라마
    600 17:24 53
    63128 [취미/생활]  대구 동성로 맛집 추천해주세요 (3) 챠피
    300 17:14 60
    63127 [취미/생활]  집에 이상하게 먼지가 많아요... 이유를 도저히 모르겠어요. (9) 맛난야채호빵
    200 17:07 172
    63126 [컴퓨터/인터넷]  공유기 여러대 사용시 이름설정.. (5) 요맘떼
    200 16:53 88
    63125 [쇼핑]  이 신발 아시는 분~ (8) 스샷첨부 푸우파이터
    1000 16:31 171
    63124 [교육/학문]  수학 잘하시는 분 계신가요? (6) 부요리장상디
    300 16:23 176
    63123 [쇼핑]  옷매장 미결제 옷 때문에 손님한테 찾아가야되서요 옷매장 점주분들 도와주세요ㅠ (7) 나패션
    500 16:23 130
    63122 [토렌트]  버림,비율 ? (4) 울산교회
    200 16:08 71
    63121 [컴퓨터/인터넷]  댓글 쓸 때, 아이콘 앞애 그림 (7) 울산교회
    200 15:58 67
    63120 [토렌트]  몇몇 토렌트가 다운이 어느순간부터 안되네요 (3) 스샷첨부 하폰
    200 15:49 98
    63119 [TV/영상]  베가스 영상 두개 겹치는거 관련 (1) 라인셜트
    200 15:12 52
    63118 [게임]  심즈4 고수분 질문좀 (1) 스샷첨부 시토레이지
    200 14:46 109
    63117 [기타]  Dr. Dre - Xxplosive 노래중에서 피처링한 가수 이름?? (4) enigma
    1000 13:55 48
    63116 [토렌트]  토렌트 돌리면 인터넷 속도가 많이 떨어지네요. (8) 박앵무새
    500 13:15 189
    63115 [경제/재테크]  카드사에서 전화왔는데 (4) 곰단지™
    200 12:24 223
    63114 [토렌트]  LIMO릴리즈는 첫배포가 어디죠? (1) Cras
    200 12:23 73
     1  2  3  4  5  6  7  8  9  10  다음