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

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

  • 토렌트최고 채택답변수 (28)
  • 나눔의즐거움 채택답변수 (25)
  • donn 채택답변수 (20)
  • 유랑천하 채택답변수 (12)
  • 뮌하우젠남작 채택답변수 (12)
  • 김교주님 채택답변수 (11)
  • Comms 채택답변수 (10)
  • 페이마임 채택답변수 (6)
  • 구름에달가듯 채택답변수 (6)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 430
    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
    99285 [전자기기]  s8+ 액정이 깨져서 수리를 받으려고 하는데요.. (2) 하야테호
    200 00:22 53
    99284 [컴퓨터/인터넷]  [윈도우10] 윈도우디펜더에서 디바이스드라이버 문제.. (2) 클리소벨
    200 10-17 53
    99283 [컴퓨터/인터넷]  SSD설치후 이상한점 + 윈도우 설치 (3) 아이배불러
    500 10-17 156
    99282 [컴퓨터/인터넷]  인터넷 옴기는거에 대해서 질문드립니다 (6) weight
    2000 10-17 68
    99281 [컴퓨터/인터넷]  인터넷과 iptv 질문이요~ (1) 독도의달밤
    300 10-17 43
    99280 [전자기기]  아이폰7 액정 수리 문의드려요 (2) 플키는냥
    1500 10-17 41
    99279 [기타]  90년대 만화책 제목 좀 찾아주세요 (4) 뻔뻔한오렌지
    300 10-17 139
    99278 [취미/생활]  파파야 질문입니다 (1) 이과의꿈
    300 10-17 42
    99277 [교육/학문]  영어 질문입니다. 공맹순자
    200 10-17 54
    99276 [컴퓨터/인터넷]  암1- 숫2 로 된 이어폰 분배기 있을까요? (5) 에다흐
    300 10-17 65
    99275 [취미/생활]  태그호이어 시계수리 중 문의 (2) 월가의영웅
    236 10-17 89
    99274 [컴퓨터/인터넷]  바이두 자료를 이글겟으로 받는데요.. (2) 방구싸다똥낌
    2000 10-17 70
    99273 [컴퓨터/인터넷]  씨게이트 외장하드에 start here win 프로그램 유령이당
    200 10-17 70
    99272 [컴퓨터/인터넷]  보안의 5대 요소 (3) 카피
    200 10-17 223
    99271 [기타]  이런 공구가 있을런지요? (1) 멍멍멍멍멍멍…
    500 10-17 160
    99270 [컴퓨터/인터넷]  키보드 프로그램 추천 좀 해주세요. (2) 릴라88
    1000 10-17 81
    99269 [건강/의학]  한의원은 토요일에 가면 의료보험 적용 안되요?? (6) 치이즈뽀또
    200 10-17 102
    99268 [컴퓨터/인터넷]  직구한 외장하드 질문! (3) 유령이당
    300 10-17 65
    99267 [전자기기]  요 모니터가 어디껀가요? (2) 스샷첨부 이준성33
    200 10-17 194
    99266 [컴퓨터/인터넷]  c언어 좀 도와주세용~~ (1) 한번만줘
    500 10-17 146
    99265 [기타]  중국어 사진속글씨좀 (3) older4
    400 10-17 203
    99264 [컴퓨터/인터넷]  요즘 들을만한 팟캐스트 어떤게 있을까요? (1) jhp0905
    200 10-17 57
    99263 [전자기기]  lg u+통신사 제휴카드사용.현대m edition2 (1) 김감좌
    500 10-17 52
    99262 [전자기기]  갤럭시 s7 LTE 속도 저하 및 통화 음질 저하 (2) 빨치산람보
    1000 10-17 109
    99261 [기타]  이토 유엽게에서 봤던 긴 짤방으로 기억하는데, 내용은 어떤 한 학자가 축구나 스포츠에 허비하는 대중에 쓴소리하는 내용입니다… 숟젓가락
    300 10-17 84
    99260 [건강/의학]  약 처방전 관련 질문드려요~ (5) 얀데레란다요
    200 10-17 84
    99259 [경제/재테크]  삼성카드 모바일 할인에 대해 궁금합니다 (2) 19세이상만
    200 10-17 53
    99258 [기타]  자전거와 차의 사고에 대한.. (7) 오뒤스와르
    500 10-17 161
    99257 [기타]  [법률] 탈퇴계약 관련 문의드립니다 (1) 저위에
    400 10-17 108
    99256 [쇼핑]  카시오 전자시계(손석희 시계) a158wa (2) 두번댓글no
    200 10-17 398
     1  2  3  4  5  6  7  8  9  10  다음