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

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

  • 포르토스 채택답변수 (51)
  • 최대8자 채택답변수 (32)
  • 도조 채택답변수 (24)
  • 능글이3 채택답변수 (13)
  • kid4 채택답변수 (12)
  • 첨단조 채택답변수 (11)
  • 인의예지신 채택답변수 (11)
  • 주백통통 채택답변수 (10)
  • 배덕이 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 286
    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
    58888 [컴퓨터/인터넷]  마우스가 한번씩 안됩니다 ㅠ 코나진
    200 09:27 18
    58887 [기타]  공유물에 관한 법률 공수거
    300 09:03 31
    58886 [기타]  게이트맨 도어락 주문했는데요. 전자키가 뭐예요??(채택률 100%) (5) 개미왕자
    200 08:00 80
    58885 [컴퓨터/인터넷]  jQuery로 클릭시 테이블 열<tr>을 삭제하고 싶은데 잘 안되네요. 전설적으로
    3000 03:13 25
    58884 [토렌트]  바이두토렌트 (1) 이주환님
    200 03:02 105
    58883 [게임]  게임이름 질문입니다ㅠㅠ (3) 지금갑니다
    500 02:03 65
    58882 [취미/생활]  전선 둘둘 감은거 뭐라고 하나요? (6) 순진소녀
    200 10-24 183
    58881 [교육/학문]  도와주세요 입사4개월차입니다.. (2) 내집마련
    200 10-24 184
    58880 [토렌트]  갑자기 토렌트파일에 바이러스가 있다고 나오면서 다운이 안되네요. (1) 스샷첨부 우르릉
    500 10-24 74
    58879 [컴퓨터/인터넷]  모니터가 이상합니다 (2) 비밀요원J
    200 10-24 93
    58878 [TV/영상]  이토에서 쓰는 유튜브 동영상 프로그램이 무엇인가요? (1) 문내안내
    200 10-24 69
    58877 [게임]  토탈워 로마2 100% 한글패치는 아직 오픈 안되었거나 안떴나요? (2) 파악수
    500 10-24 83
    58876 [취미/생활]  여행지 추천 좀요 (4) 한번만줘
    200 10-24 63
    58875 [컴퓨터/인터넷]  USB 파일이 자꾸 숨김되고 바로가기가 만들어 집니다. (4) 스샷첨부 체크티셔츠
    300 10-24 144
    58874 [컴퓨터/인터넷]  웹사이트 게시판 관련 질문입니다. Tevil
    200 10-24 49
    58873 [컴퓨터/인터넷]  윈8.1 64비트에서 mp3gain 작동이 안됩니다. (2) 쿨킥
    500 10-24 97
    58872 [기타]  CD 영상 추출하는 법 알려주세요 (4) 스샷첨부 옴마뿌잉
    300 10-24 100
    58871 [컴퓨터/인터넷]  컴퓨터 다운현상 (4) 만성주부습진
    300 10-24 141
    58870 [쇼핑]  해외직구하려는데 이 사이트 믿을만한 사이트 일까요? (4) ㅇㄷㅇ2
    200 10-24 160
    58869 [컴퓨터/인터넷]  안드로이드 구글맵 네비게이션 음성이 안나와요. 아르해
    700 10-24 47
    58868 [컴퓨터/인터넷]  자료요청에 글이 안올라가요 (3) woOoNjI
    200 10-24 65
    58867 [컴퓨터/인터넷]  실시간 CPU RAM 모니터링 프로그램 좀 찾아주세요! (4) 스샷첨부 데코모리
    200 10-24 163
    58866 [컴퓨터/인터넷]  관리자권한으로 실행되는 파일을 해제할수 없을까요? (1) 스샷첨부 데코모리
    200 10-24 132
    58865 [컴퓨터/인터넷]  자기가 원하는 시간간격마다 알려주는 어플 있을까요? (4) 거꾸로타는AM…
    200 10-24 166
    58864 [토렌트]  오디오북 또는 스타강사 오디오파일 어떻게 구해야되나요? (1) 부자집맏아들
    500 10-24 88
    58863 [TV/영상]  브금 질문좀 하겠습니다.. 34545456
    200 10-24 65
    58862 [기타]  외국과자 저렴한 곳 사이트 아시는 분 추천 부탁드립니다.^^ (1) 네버윈터
    200 10-24 105
    58861 [컴퓨터/인터넷]  윈도우8.1 사용중인데 부팅과 종료시 문제 (7) 글라시에스
    200 10-24 200
    58860 [기타]  자동차 필터 관련 문의 (냄세제거) (6) 번다버그
    200 10-24 133
    58859 [쇼핑]  화장품 추천좀 부탁드립니다ㅜㅜ (7) fltp777
    1000 10-24 85
     1  2  3  4  5  6  7  8  9  10  다음