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

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

  • 블루복스 채택답변수 (69)
  • 강무 채택답변수 (59)
  • 이화에월담하고 채택답변수 (36)
  • 이토님 채택답변수 (35)
  • donn 채택답변수 (30)
  • 나도익명 채택답변수 (12)
  • belcowin 채택답변수 (10)
  • 포르토스 채택답변수 (9)
  • 유랑천하 채택답변수 (8)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 421
    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
    95634 [컴퓨터/인터넷]  윈도우 10 설치하려는데요. 클린 말고 그냥 설치도 되나요? 손나코토
    1000 11:12 89
    95633 [기타]  MLB에서 트레이드는 언제까지 하는건가요?? (1) 키스톤
    600 10:40 139
    95632 [TV/영상]  김연아 어깨빵 당하는 영상 있나요? 스샷첨부 pro80
    700 09:01 606
    95631 [교육/학문]  증기터빈에서 '증기'를 사용하는 이유는 무엇인가요? (3) 고자반
    500 08:25 556
    95630 [건강/의학]  더위를 벗어나고 싶습니다.. ㅜㅜ (9) 테서
    500 05:49 891
    95629 [컴퓨터/인터넷]  특정사이트 접속이 안됩니다.ㅠㅠ (배틀넷) (해결안됨) (6) 스샷첨부 싸란마리오
    500 01:20 1408
    95628 [컴퓨터/인터넷]  인터넷 글 보면 갑자기 중앙정렬이 되요ㅠ (2) 끼야야아앙
    300 06-25 1589
    95627 [TV/영상]  혹시 이사람이 누구인지 아시는분 있나여? (2) sksah
    200 06-25 1722
    95626 [교육/학문]  영어 공부 어떻게할가요??? (3) 강인수
    500 06-25 1653
    95625 [음악]  브금 마법사님들 이 브금좀 알려주세요.. (2) 독한인생
    1000 06-25 1661
    95624 [컴퓨터/인터넷]  업그레이드 문의 입니다. (5) 말통
    500 06-25 1716
    95623 [컴퓨터/인터넷]  혹시 eXERD 에서 sql Server2008 로 포워드 엔지니어링하실줄 아시는분? 맛간닭
    300 06-25 1718
    95622 [컴퓨터/인터넷]  해킹 용어중에 여러명의 계좌에서 소액을 빼가는 기법 (5) 도롱뇽2
    200 06-25 2077
    95621 [취미/생활]  소니 카메라 질문입니다. (2) 스크랄라랄
    500 06-25 1929
    95620 [취미/생활]  화장실 배수구가 막혔습니다 (8) 스샷첨부 아라리가났네
    500 06-25 2130
    95619 [전자기기]  게이밍 헤드셋 추천좀 해주세요 (1) 쫄아웃
    250 06-25 1922
    95618 [기타]  수학적인 질문입니다. (4) dlkdjf2
    500 06-25 2073
    95617 [컴퓨터/인터넷]  윈도우 7 USB로 설치하는 도중 진행이 안되네요 (21) 스샷첨부 혀니마세상
    500 06-25 2198
    95616 [게임]  중국어 잘하시는분 번역하나만 부탁드려요!!(게임관련) (2) arkaz
    500 06-25 2112
    95615 [취미/생활]  그림이나 만화 공부할만한 사이트나 카페 추천 부탁드립니다. (2) 발굽혀펴기
    500 06-25 2114
    95614 [기타]  경찰이 가해자 편들때 (8) 白骨마대
    5000 06-25 2448
    95613 [토렌트]  토렌트 실행중인데 토렌트 창이 보이지 않습니다. (5) 클매니아
    200 06-25 2153
    95612 [취미/생활]  사진에 있는 일러스트 어디서 구매해야될까요? 스샷첨부 자연산광어
    400 06-25 2191
    95611 [컴퓨터/인터넷]  하드 읽는 속도가 느린데 (4) 이지은이
    1000 06-25 2246
    95610 [컴퓨터/인터넷]  770icafe gt420 호환되는지요 (2) 이연희ㅡ팬1…
    500 06-25 2199
    95609 [음악]  BGM 제목이나 아티스트 알려주세요. 미니멈바이럴
    2000 06-25 2231
    95608 [음악]  BGM 제목이나 아티스트 알려주세요. (1) 미니멈바이럴
    2000 06-25 2234
    95607 [컴퓨터/인터넷]  조립PC 전원이 안들어오네요ㅠ (7) 거기아가씨
    200 06-25 2348
    95606 [기타]  차량용 빠루?? (2) GoldT
    300 06-25 2334
    95605 [쇼핑]  단종된 아디다스 슬리퍼 구할 곳 없을까요?ㅜㅜ (3) 스샷첨부 여우비내리는…
    500 06-25 2432
     1  2  3  4  5  6  7  8  9  10  다음