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

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

  • 상어칭구 채택답변수 (66)
  • 야감자 채택답변수 (40)
  • 패왕색패기 채택답변수 (20)
  • 나도익명 채택답변수 (18)
  • 카나신 채택답변수 (16)
  • 도조 채택답변수 (13)
  • 디알이 채택답변수 (13)
  • lemo 채택답변수 (12)
  • 주백통통 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 330
    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
    69821 [컴퓨터/인터넷]  컴퓨터, 네트워크 등 보안전문가 ...어떤가요? 그리그
    1000 15:23 27
    69820 [경제/재테크]  그리스가 망했는데 왜 코스피 가 하락이라고 뉴스에서 그러나요? (3) 스샷첨부 오십구키로
    200 14:57 91
    69819 [쇼핑]  일본 영수증 항목이 궁금 합니다. (7) 스샷첨부 오리매운탕
    200 13:29 146
    69818 [토렌트]  토렌트 업로드를 하려고 토렌트 만들기를 하려고 했는데 별을쏘다s
    200 12:55 52
    69817 [컴퓨터/인터넷]  ebook 파일 변환에 관해서 여쭤볼려고합니다. (6) 토렌트러브유
    300 12:53 31
    69816 [기타]  8월 중순에 제주도 여행 계획을 짜고 있는데 도와주세요. (2) 메이트런
    200 12:18 66
    69815 [건강/의학]  가족과 함께 MBTI 한번 받아볼까 싶은데 해보신 분들 있으신가요? (4) 혀니마세상
    500 11:40 79
    69814 [컴퓨터/인터넷]  윈도xp 사용중인데 7로 업글을 해야할까요? (11) 동방황제
    200 11:35 118
    69813 [취미/생활]  패키지 여행할때 호텔 변경 관련해서 궁금합니다. (5) child
    500 11:26 60
    69812 [컴퓨터/인터넷]  전자책(ebook)에 관해서.. 질문 드립니다. (2) 햇빛청춘
    300 11:22 51
    69811 [취미/생활]  제주도에서의 하루를 재미있게 보내려면 (1) 바티칸시국
    200 09:29 163
    69810 [건강/의학]  어금니 신경치료시 마취 실패 (4) uskin
    200 08:57 237
    69809 [기타]  NH농협신용카드 할부 궁금한점입니다. (1) 뿌락클
    200 07:56 84
    69808 [경제/재테크]  5개월 저축으로 최대의 이익을 내려면 어떻게 해야 하나요? (4) 엔플
    1000 02:40 152
    69807 [게임]  아캄나이트 쿠폰 등록 오류. (3) 스샷첨부 우피구피
    200 02:20 123
    69806 [TV/영상]  영화관4d랑 슈퍼4d랑차이좀알려주실분 (4) 아야카네
    200 01:51 102
    69805 [취미/생활]  암벽등반 하는곳 (2) rkkkkkk
    1000 01:48 119
    69804 [기타]  사당역, 영등포역근처로 소개팅할만한 장소 알려주시면 감사하겠습니다. (3) 임씨합격이요
    333 00:48 94
    69803 [게임]  게임하기 좋은 우회프로그램 없나요.. (5) 앗능베베
    200 07-06 197
    69802 [기타]  네이x 쪽지가 왔는데 뭔지 모르겠어요;;; (5) 스샷첨부 수봉스
    200 07-06 366
    69801 [기타]  실제 담배와 똑같은 미니어쳐 담배 구할수 있을까요?? (3) 블랙나이츠
    2000 07-06 307
    69800 [기타]  인형뽑기 창업할려고 하는데 ... (2) 봉원리
    500 07-06 262
    69799 [건강/의학]  미용에 대해 질문^^* 4앙학오
    200 07-06 50
    69798 [기타]  국비지원교육 내일배움카드에 관한 질문 입니다 (1) 두심
    200 07-06 127
    69797 [컴퓨터/인터넷]  업무용 태블릿 추천 (1) 발굽혀펴기
    500 07-06 132
    69796 [컴퓨터/인터넷]  업무용 노트북 추천 부탁드립니다. (2) 발굽혀펴기
    500 07-06 80
    69795 [컴퓨터/인터넷]  사이트 좀 찾아주세요 흑석류
    200 07-06 71
    69794 [취미/생활]  자전거 추천 부탁드립니다~~ (1) 최강울버린
    200 07-06 82
    69793 [쇼핑]  자전거 블박용으로 어떤게 좋을까요? (1) 쥐잡자
    300 07-06 71
    69792 [TV/영상]  UHD 방송 주파수 확정 뉴스에서 광대역도 가능한가요? (1) 쥐잡자
    300 07-06 84
     1  2  3  4  5  6  7  8  9  10  다음