홈으로 | 로그인 | 무료회원가입 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기
자료실
 해외음원  | 해외동영상
 기타  | 토렌트외
회원공간
 전체게시판  | 인기게시판
 가입인사  | 출석체크
 실시간토크  | 짤방토크
 회원게시판  | 질문과답변
 유머엽기  | 유익한정보
 연예인  | 동물/식물
 영화  | 방송  | 애니
 게임  | 모바일게임
 사용기/후기  | 베스트10
 스마트폰  | 컴퓨터
 스포츠  | 자동차
 패션/뷰티  | 도서/책
 취미/여가  | 금융/투자
 포토샵요청  | 플래시게임
 회원투표  | 회원모습
 시사/토론  | 광고/홍보
알뜰공간
 컴퓨터견적  | 업체게시판
 회원장터  | 알뜰구매
 쿠폰/이벤트  | 알바/취업
포인트공간
 포인트배팅  | 포인트퀴즈
 포인트선물  | 홍보포인트
 무료충전소 | 무료충전소2
 포인트경매 | 포인트복권
 포인트슬롯 | 포인트순위
이토공간
 공지사항  | 문의사항
 자주묻는질문  | 토렌트팁
 포인트적립 및 계급정책안내

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

  • 최대8자 채택답변수 (42)
  • 주백통통 채택답변수 (20)
  • 유랑천하 채택답변수 (19)
  • 가구 채택답변수 (17)
  • 대마법사 채택답변수 (15)
  • 디알이 채택답변수 (14)
  • QvQvQv 채택답변수 (13)
  • 일도양단 채택답변수 (11)
  • 검색왕 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 222
    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포인트를 걸었습니다. 답변이 채택되면 420포인트를 드립니다.

    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 11-11
    [공지]  ※ 자료요청 금지합니다 (질문자,답변자 같이 제재합니다) 이토렌트
    0 05-08
    [공지]  ※ 질문과답변 게시판 이용안내 이토렌트
    0 03-28
    49744 [컴퓨터/인터넷]  엑셀 좀 도와주세요. 메이트런
    200 11:56 8
    49743 [컴퓨터/인터넷]  엑셀에서 다른 시트의 데이터를 가져올때 (8) 구르덱
    100 10:01 47
    49742 [기타]  cd출금 가능이 창구에서 빼는 건가요?. (3) 소스테이
    100 09:29 46
    49741 [컴퓨터/인터넷]  무설치크롬.. Flash player 어디에다 넣어 줘야 하나요 ? (1) 스샷첨부 섶다리
    200 08:18 38
    49740 [컴퓨터/인터넷]  닷넷프레임워크 버전별로 모두 설치해야나요? (1) 파비앙느
    50 07:48 46
    49739 [교육/학문]  영어 한줄 해석 좀... (2) 콩갸루갸루
    100 05:47 77
    49738 [토렌트]  토렌토 속도 질문좀요... (2) 마약맨
    100 02:26 49
    49737 [토렌트]  토렌트 대기중이라 뜨는데 활성화 방법좀 ㄷㄷ (1) ㅁㅁ짱짱
    50 02:02 50
    49736 [교육/학문]  xilinx (vhdl) 코딩 질문입니다. (1) 스샷첨부 하하하하히히…
    300 01:53 35
    49735 [컴퓨터/인터넷]  윈도우7 64bit 마우스 감도 문의(제어판 제외) (1) 오히히히혹
    100 01:20 67
    49734 [취미/생활]  왁스바르는법 (4) ㅁㄱㄴㄴ
    50 01:13 188
    49733 [기타]  노래가사좀 알려주세요 (2) 고자베다
    120 00:55 32
    49732 [컴퓨터/인터넷]  유투브 댓글 무한로딩현상 (2) 쿠레레렐
    300 00:39 51
    49731 [게임]  고전 게임 중에 제목이 '삼매경' 이라는 게임 아시는 분 계신가요? 김대기
    500 00:36 45
    49730 [교육/학문]  [세법관련] 법인세 회사업년도 질문드립니다. (1) 부럭
    50 00:26 34
    49729 [컴퓨터/인터넷]  그래픽카드 추천 좀 해주세요 (2) 스샷첨부 좀비님222
    200 04-17 104
    49728 [교육/학문]  안드로이드 프로그래밍 레이아웃관련 질문이요 (9) 일도양단
    100 04-17 51
    49727 [토렌트]  토랜트 사용 궁금한게 있어서요 (1) 시우제이디
    100 04-17 66
    49726 [교육/학문]  노트북으로 오토캐드 돌려야 하는데 얼마쯤 가격 나올까요 (5) artdagge
    50 04-17 73
    49725 [쇼핑]  제가 해외구매대행사이트를 통해 물건을 샀는데요. (+ 일본어 메일 해석도 부탁드려요) (7) 비가그쳐요
    2000 04-17 116
    49724 [취미/생활]  건강보험공단 보험료조회 댓글삭제방지
    180 04-17 66
    49723 [취미/생활]  연말정산 결과 국세청등에서 확인가능할가요 ? (1) 일상생활모험
    200 04-17 34
    49722 [기타]  간단한 일어 해석좀 부탁드립니다. (3) 스샷첨부 논픽션
    200 04-17 70
    49721 [TV/영상]  영화 제목 알고싶습니다 (2) Soul2
    2000 04-17 84
    49720 [컴퓨터/인터넷]  한글 양면 인쇄 어덯게 하나요?? (10) 인향아
    50 04-17 120
    49719 [기타]  다쓴 문상 핀번호 구합니다. (1) 먹연희
    300 04-17 181
    49718 [기타]  암석? 정체를 알려주세요 (4) 생나기헌
    51 04-17 124
    49717 [TV/영상]  영화 제목좀 알려주세요(전쟁영화..?) (7) lokk
    200 04-17 119
    49716 [기타]  휴대용스피커 음량질문요~ (1) 암모늄
    100 04-17 75
    49715 [컴퓨터/인터넷]  Photodex ProShow Producer 6.0.3410 설치방법 문의드립니다 (1) 멋쟁이충이
    100 04-17 28
     1  2  3  4  5  6  7  8  9  10  다음