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

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

  • 최대8자 채택답변수 (37)
  • 1425 채택답변수 (34)
  • 유랑천하 채택답변수 (22)
  • 유리보이카 채택답변수 (19)
  • 루시드랑 채택답변수 (18)
  • 옹느랑 채택답변수 (17)
  • 나도익명 채택답변수 (15)
  • 첨단조 채택답변수 (14)
  • 뉴발란스 채택답변수 (13)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 279
    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포인트를 드립니다.

    SOAD 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이 될걸요?
         
         
    SOAD 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
    56582 [경제/재테크]  카드 미납금 처리 (2) 따이탄
    500 10:38 81
    56581 [TV/영상]  나루토 NARUTO nezumi 릴... 부루펜
    200 10:38 44
    56580 [컴퓨터/인터넷]  다나와 노트북 구매시 믿을만한 일반몰? SOAD
    1250 09:53 61
    56579 [경제/재테크]  카드 미납 및 정지 (8) 따이탄
    200 09:21 151
    56578 [쇼핑]  Creative T30 이 스피커 어떤가요 (1) dobbbb
    200 09:18 45
    56577 [기타]  저작권신고가 들어와서 그런데... (9) 육성
    400 08:57 193
    56576 [기타]  님들의 지식이 필요합니다. (1) 띤엽
    1000 06:09 121
    56575 [경제/재테크]  님들의 지식이 필요합니다!! (4) 띤엽
    1000 05:27 97
    56574 [컴퓨터/인터넷]  PC사용중 갑자기 화면이 안나오고 그뒤 PC가 부팅이 안됩니다 (7) 세일버
    700 03:39 108
    56573 [경제/재테크]  님들의 지식을 빌려주세요~ (3) 띤엽
    2000 02:25 100
    56572 [기타]  동생이 연락이 안되는지 한달이 다돼가는데 어떤 조치를 취해야할까요? (7) 쟈카리
    200 02:23 205
    56571 [컴퓨터/인터넷]  익스플러로 네이버 뉴스란만 보면 화면이 이상하게 나옴니다. 스샷첨부 멀라임마
    200 02:18 56
    56570 [컴퓨터/인터넷]  애프터이펙트와 프리미어 오류메세지 스샷첨부 혀니마세상
    200 01:39 41
    56569 [토렌트]  이토렌트 포인트 어디에 쓰는건가요? (2) 모택동77
    200 00:29 180
    56568 [기타]  휴대폰 노트3가 이상합니다. 좀아시는분??>? (3) 스샷첨부 명선사랑
    1000 00:03 114
    56567 [건강/의학]  목디스크 운동 부탁드립니다. (1) 린스컴입니다
    300 09-01 73
    56566 [게임]  버쳘캅1 pc버젼 실행시 dplay.dll 오류 문제 (1) 곰돌이멍멍
    200 09-01 53
    56565 [컴퓨터/인터넷]  바이두에 1T 정도 파일 백업 하려는데요 (3) 호롤로로1
    200 09-01 104
    56564 [쇼핑]  코스트코 구매대행 사이트 평소 이용하시는 곳 있나요? (3) hyds
    200 09-01 138
    56563 [TV/영상]  TV 케이블 연결 질문드립니다. (TV가 안나와요) (10) 스샷첨부 오뒤스와르
    1000 09-01 93
    56562 [취미/생활]  붙박이장 문에 붙어있는 건데요 어디가서 살 수 있을까요? (4) 스샷첨부 체크티셔츠
    500 09-01 99
    56561 [컴퓨터/인터넷]  컴퓨터의 현재 상태는? 0x000007b (1) 스샷첨부 Etorreng
    200 09-01 168
    56560 [컴퓨터/인터넷]  아이패드 탈옥.. 고수님께 묻습니다! (1) 시선바다
    1000 09-01 73
    56559 [TV/영상]  류현진 공수교대할때 나오는 음악 노래 (1) 백사장
    1000 09-01 137
    56558 [컴퓨터/인터넷]  윈도설치씨디(XP 또는 7)로 부팅시 전원이 꺼져요.. (7) ☆미니☆
    300 09-01 84
    56557 [토렌트]  토렌트 사용시 뜨는 팝업창들 (8) 임대뽕
    200 09-01 114
    56556 [쇼핑]  야구글러브 싸게살수 있는곳 어디있을까욤 (2) GrailL
    200 09-01 87
    56555 [토렌트]  요새 어느 릴 그룹이 가장 괜찮나요? (1) 오뒤스와르
    200 09-01 148
    56554 [토렌트]  토렌트 파일문제 질문 입니다. (2) 스샷첨부 ヤシン
    1000 09-01 84
    56553 [교육/학문]  영어 질문드립니다. (9) 라마바아파
    250 09-01 99
     1  2  3  4  5  6  7  8  9  10  다음