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

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

  • 최대8자 채택답변수 (32)
  • 1425 채택답변수 (31)
  • 유랑천하 채택답변수 (28)
  • 유리보이카 채택답변수 (23)
  • 나도익명 채택답변수 (19)
  • 루시드랑 채택답변수 (18)
  • 도조 채택답변수 (15)
  • 옹느랑 채택답변수 (15)
  • 첨단조 채택답변수 (15)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 278
    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포인트를 드립니다.

    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 08-25
    [공지]  ※ 카톡유령방 및 초대장관련 게시물 등록금지 (자료요청 게시판이용) 이토렌트
    0 11-11
    [공지]  ※ 질문과답변 게시판 이용안내 이토렌트
    0 03-28
    56407 [컴퓨터/인터넷]  인터넷이랑 집전화 잘 아시는분 계신가요 ㅠㅠ 옵티머스G
    200 10:08 15
    56406 [교육/학문]  경영학 전공 질문.. 가을찻집
    200 09:54 29
    56405 [컴퓨터/인터넷]  cpu교체할때 궁금한점 (2) 즐이다
    300 08:40 122
    56404 [컴퓨터/인터넷]  그래픽카드 모니터링 프로그램 관련 질문입니다... (2) 재화니
    200 06:47 49
    56403 [컴퓨터/인터넷]  제 컴이 요즘 .... 알려 주십시요 (2) 너랑나랑아이…
    300 05:29 103
    56402 [기타]  중국에서지내고있는데........... 거울보고헐
    200 05:17 98
    56401 [컴퓨터/인터넷]  바이오스 업하는거 좀 갈쳐주세요 (1) 바이두짱
    1000 05:13 61
    56400 [컴퓨터/인터넷]  컴 전원이 안켜지는데 어쩌다 켜지는데 전기 쪽 잘아시는 분 답변좀 바랍니다. (2) 파비앙느
    200 04:33 84
    56399 [취미/생활]  DSLR 바디 가격대비 성능 차이? (1) 넬종완
    485 03:13 102
    56398 [컴퓨터/인터넷]  컴퓨터 부품의 조화?? (4) 피숑파숑
    200 01:59 123
    56397 [취미/생활]  이런 사진은 어떻게 하는것인가요? (3) 스샷첨부 변치않는바램
    200 00:54 216
    56396 [토렌트]  이 짤의 여자캐릭터가 나오는 애니메이션 제목 아시는 분 ? (2) 스샷첨부 주접주
    500 00:50 197
    56395 [게임]  2006 스카이 프로리그 skt vs 삼성 하는 결승전 온게임넷에서 방송하는거 구할 때 없을까요? 자조적행복
    300 08-28 33
    56394 [컴퓨터/인터넷]  cpu교체하려는데 메인보드좀 봐주세요. (6) 즐이다
    500 08-28 110
    56393 [게임]  Onlink 해킹 게임 하는법좀요 ㅠㅠㅠㅠ 인과응보
    200 08-28 101
    56392 [교육/학문]  성공관련 영상이나 자료 많은곳 아시는분??? (1) 에로로
    200 08-28 46
    56391 [경제/재테크]  전세대출에 관해서 여쭤봐요 (2) 김얏호
    300 08-28 92
    56390 [기타]  핸드폰 정상해지가 뭘까요 (3) 따스한어둠
    500 08-28 98
    56389 [기타]  우리나라를 인지도를 높힌것이 머가 가장높을 까요? (8) 허니문메론
    200 08-28 134
    56388 [컴퓨터/인터넷]  ssd 불량 문의 합니다. (2) 삐해서삐
    200 08-28 144
    56387 [컴퓨터/인터넷]  (정독 필수!) 크롬 왜이러죠? (2) 스샷첨부 글리게
    200 08-28 167
    56386 [취미/생활]  아메리칸 투어리스터와 샘소나이트의 관계? (4) 와로와로
    200 08-28 111
    56385 [컴퓨터/인터넷]  인터넷 사진이 늦게뜨고 가끔 노이즈(?) 같은게 생기네요 (3) 스샷첨부 랩하는참치
    200 08-28 134
    56384 [기타]  아이폰 유저님들 ㅜㅜ (4) 거울보고절규
    500 08-28 146
    56383 [기타]  신용카드 발급에관해서 질문 (1) 장군스나
    500 08-28 104
    56382 [기타]  휴대폰 관련해서 질문드립니다. (2) 홋홍홍
    3000 08-28 102
    56381 [컴퓨터/인터넷]  움짤 용량 줄이기. (1) 한지민♡
    300 08-28 121
    56380 [컴퓨터/인터넷]  인터넷 가입 때문에 글 남깁니다. (2) 개똥벌레군
    200 08-28 113
    56379 [쇼핑]  러시아 보드카 구입방법 (2) 스샷첨부 인천사내
    300 08-28 246
    56378 [기타]  노조없이 종사원이 혼자 파업할수 있나요? (4) 빠아아아각
    200 08-28 228
     1  2  3  4  5  6  7  8  9  10  다음