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

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

  • babpul 채택답변수 (108)
  • 나도익명 채택답변수 (38)
  • 최대8자 채택답변수 (24)
  • 패왕색패기 채택답변수 (23)
  • 천사같은피부 채택답변수 (17)
  • 긍정과웃음 채택답변수 (11)
  • RJ45 채택답변수 (11)
  • 마이액플 채택답변수 (11)
  • 상어칭구 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 322
    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
    67975 [쇼핑]  재범이 입은 자켓 가격대좀요 (1) 스샷첨부 SWAT
    300 12:44 53
    67974 [컴퓨터/인터넷]  무선랜카드를 메인보트에 장착하는거랑 USB로 연결해서 쓰는거랑 속도 차이가 많이 나나요? 미래소오년
    200 12:24 31
    67973 [기타]  영어잘하시는분 영작한번만 도와주세요 (3) caster
    1000 09:46 106
    67972 [취미/생활]  동대문 근처에 (2) 젤라두
    300 09:36 73
    67971 [기타]  변기통 물이 없어졌어요. (3) 서울마님
    600 09:26 187
    67970 [토렌트]  토랜트 느려서 바이두로 받으려는데 씨앗 파일이 저장 안되서요.;;;;;;;;;; (1) 김말석
    200 09:23 69
    67969 [TV/영상]  아빠를 부탁해에서 피아노 음악 가르쳐주세요 (1) pro80
    700 08:55 55
    67968 [취미/생활]  마리오 브라더스 캐릭터 이름좀 알려주세요. (1) 스샷첨부 올챙2
    400 07:55 62
    67967 [기타]  이불 사는 요령좀 알려주세요 (3) 뀨유뀨유
    200 06:45 112
    67966 [컴퓨터/인터넷]  크롬 글씨번짐 현상... 해결해주세요 (2) 스샷첨부 무천도
    200 03:49 113
    67965 [TV/영상]  마지막 장면이던가 죽은동료 나무위에 올려놓고 떠나는 장면 아이컷
    500 02:36 189
    67964 [기타]  사과에.... (2) 복수불수
    500 02:01 96
    67963 [교육/학문]  푸리에 변환식에서 간단한 질문입니다. (3) 스샷첨부 조각상
    300 00:24 119
    67962 [컴퓨터/인터넷]  노트북 무선인터넷이 안 되는데요 (9) 스샷첨부 우체국짱
    500 05-22 157
    67961 [기타]  예비군 불참 관련 질문좀요 (6) 호주산
    500 05-22 202
    67960 [토렌트]  중국판 비정상회담 토렌트 받을수 있는 곳? (2) skdkasd
    250 05-22 140
    67959 [건강/의학]  우유 1000ml 칼로리가 대체로 얼마나 되죠? (2) ㅁ딕ㅁ디고ㅓ
    200 05-22 198
    67958 [기타]  연휴에 수원 놀러 가는데... 수원역 앞 혹시 좋은 곳 아시는데 있나여? (3) 하얀자켓
    500 05-22 164
    67957 [컴퓨터/인터넷]  DDR3L 제품이 이게 맞는건지 궁금합니다. (3) CubeSI
    200 05-22 125
    67956 [기타]  장물 오토바이 교통사고 질문~~~!! (3) 하하후후2
    200 05-22 160
    67955 [컴퓨터/인터넷]  혼자 욕하는 버릇 (5) 슈퍼방랑자
    200 05-22 230
    67954 [컴퓨터/인터넷]  포토샵으로 일러스트레이터 처럼 픽셀이 깨지지 않고 저장하려면 어떻게해야하나요? (6) 데코모리
    300 05-22 106
    67953 [게임]  퓨처파이트 하시는분 계신가요? (2) vnfmsg
    200 05-22 53
    67952 [컴퓨터/인터넷]  동영상 인코딩 없이 자르고 붙이는 프로그램 있나요? (12) 크아앙
    200 05-22 115
    67951 [컴퓨터/인터넷]  새로 산 노트북에서 고주파음이 들립니다. (5) USPTalon
    1000 05-22 79
    67950 [쇼핑]  블루투스 이어폰 추천좀 해주세요~ (목걸이형X, 가격15만원 안팎) (4) 날아라마늘쫑
    200 05-22 69
    67949 [컴퓨터/인터넷]  컴퓨터 이상현상 질문드려요 (8) 똘이장군님
    200 05-22 82
    67948 [컴퓨터/인터넷]  모니터 화면 날림 현상 질문~! (2) 스샷첨부 푸우파이터
    2000 05-22 110
    67947 [컴퓨터/인터넷]  전에는 크롬브라우저 자동 업데이트 뜨던데 안되네요 (2) 쑥갓마왕
    350 05-22 57
    67946 [컴퓨터/인터넷]  크롬쓰는데 글이 깨져서 나오네요 (1) 스샷첨부 랑포프
    200 05-22 95
     1  2  3  4  5  6  7  8  9  10  다음