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

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

  • 나도익명 채택답변수 (43)
  • 패왕색패기 채택답변수 (37)
  • 5235 채택답변수 (36)
  • 나쵸에맥주 채택답변수 (26)
  • 야감자 채택답변수 (18)
  • 이화에월담하고 채택답변수 (14)
  • lemo 채택답변수 (12)
  • 라쿠엔 채택답변수 (10)
  • 김람보 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 371
    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
    81027 [컴퓨터/인터넷]  크롬에 일부 사이트가 깨져나오는 현상 (2) 스샷첨부 의열단
    200 09:31 57
    81026 [경제/재테크]  대출 관련 질문입니다 서울마님
    1000 09:23 43
    81025 [기타]  게임어플 사이트 (2) 김몽실
    300 03:52 136
    81024 [컴퓨터/인터넷]  분리된 파티클(c,d 드라이브)을 하나로 통합하는 방법이 뭔가요? (7) 동방황제
    200 03:12 94
    81023 [TV/영상]  동영상편집 관련 질문좀요!ㅠㅠㅠ (1) 샤룰루스
    200 03:07 73
    81022 [TV/영상]  '아는형님' 20화 마지막에 나온 음악 아시는 분?? (3) 플로리나
    300 02:03 118
    81021 [건강/의학]  근력 회복 언제 될까요? (3) 사토미이시하…
    500 00:31 174
    81020 [컴퓨터/인터넷]  가성비 좋은 와이파이공유기 추천부탁드립니다 (3) 극성이
    200 00:29 118
    81019 [TV/영상]  냉장고를 부탁해 76화 한고은편 배경음악 (4) 리레롤리릴
    200 00:13 77
    81018 [취미/생활]  라오스 vs 캄보디아 vs 홍콩 (8) 다래1025
    900 05-05 171
    81017 [기타]  노래 관련 질문이요 (2) sdfl2343
    500 05-05 65
    81016 [컴퓨터/인터넷]  pc로 폰 문자 보내는 방법 (2) ㅁ딕ㅁ디고ㅓ
    300 05-05 197
    81015 [컴퓨터/인터넷]  혹시서든하시는분? (1) 아푸당ss
    200 05-05 63
    81014 [쇼핑]  이신발의 정체는!!! (4) 스샷첨부 나이야가락
    1000 05-05 297
    81013 [게임]  구글플레이 게임 로그인이 안되는데 (9) Qqu93
    300 05-05 79
    81012 [토렌트]  애니 제목 좀 알 수 있을까요??? (2) 스샷첨부 다빈치코드는
    200 05-05 99
    81011 [컴퓨터/인터넷]  다음 카페 게시글 삭제 방법 알려주세요 (3) farafara
    500 05-05 72
    81010 [게임]  스타1 배틀넷이 안드가지네용 (1) 태식아
    500 05-05 135
    81009 [TV/영상]  왕좌의 게임 스토리를 복습하고 싶은데, 정리된곳 없을까요? (1) 카랑탕
    200 05-05 197
    81008 [컴퓨터/인터넷]  프로그램관련 초보적인질문인데요^^;윈도우xp에서 윈도우7업그레이드방법 (4) 지존송충이
    200 05-05 99
    81007 [취미/생활]  영화 제목을 알고싶어요, (4) Horiz
    200 05-05 153
    81006 [컴퓨터/인터넷]  ms워드2016 버전 양식보고서 박스안에 제정.개정.폐기 추가하는 방법요..... 스샷첨부 하늘사랑님
    200 05-05 53
    81005 [기타]  핸드폰 단순변심에 의해 청약철회 가능한가요? (5) 두동강
    250 05-05 120
    81004 [컴퓨터/인터넷]  마소 오피스 2010 크랙 좀 구하고 싶은데요 (2) Frantell
    400 05-05 102
    81003 [컴퓨터/인터넷]  웹 디자인 관련 서적 추천 부탁드려요. (1) 게바
    200 05-05 55
    81002 [컴퓨터/인터넷]  컴퓨터 견적 질문 좀 드리겠습니다 (8) 스샷첨부 야호후히
    1000 05-05 97
    81001 [토렌트]  토렌트 추가시 바로 토렌트 창이 안뜨고 열기 닫기창이 뜨는문재 (2) 스샷첨부 멀라임마
    300 05-05 88
    81000 [컴퓨터/인터넷]  C\windows\system32\migwiz\wdscore.dll 오류 (2) 스샷첨부 kkaus
    500 05-05 71
    80999 [교육/학문]  온습도센서아시는분 계실까요, 질문이있습니다. (공대) (2) 사랑소시
    300 05-05 88
    80998 [컴퓨터/인터넷]  윈도우 미디어 센터 녹화파일 wtv말고 ts로 안되나요? 루기아
    200 05-05 54
     1  2  3  4  5  6  7  8  9  10  다음  맨끝