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

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

  • 상어칭구 채택답변수 (55)
  • 야감자 채택답변수 (36)
  • 나도익명 채택답변수 (21)
  • 클레오 채택답변수 (21)
  • lemo 채택답변수 (14)
  • 주백통통 채택답변수 (13)
  • Siloa 채택답변수 (11)
  • 도조 채택답변수 (10)
  • Tattat 채택답변수 (8)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 343
    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
    72018 [취미/생활]  층간소음 이거 말해야될까요 (3) 시토레이지
    200 15:09 41
    72017 [쇼핑]  ▶하드플스2+소니티비 시세좀 봐주세요 (2) 스샷첨부 Sane
    300 14:45 60
    72016 [게임]  게임 추천 해주세요 (2) 맹두
    200 14:40 29
    72015 [교육/학문]  엑셀 좀 물어봐도 될까요 (1) 별명열매
    200 14:34 41
    72014 [기타]  핸드폰 교체 관련 (5) 골드로져
    300 12:59 64
    72013 [컴퓨터/인터넷]  베가아이언 mtp 인식이 안됩니다 ㅠㅠㅠㅠ (8) 스샷첨부 SWAT
    500 12:41 65
    72012 [교육/학문]  수식 입력기 추천 부탁드려요 (1) 벌레는죽여야…
    200 12:35 34
    72011 [토렌트]  adobe 자료는 등록 안되나요? (1) 겸둥이71721
    500 12:09 45
    72010 [토렌트]  외국사이트중에 페이내고 토렌트나 자료 요청할수있는곳? 이티워
    300 11:46 47
    72009 [컴퓨터/인터넷]  외장하드 불량 해결방법을 알고싶습니다. 네지트
    200 11:24 76
    72008 [게임]  게임 릴 잘되는곳 아시는분.. 토렌사이트 (2) playbye
    300 10:24 114
    72007 [교육/학문]  영어 받아쓰기 사이트좀 알려주세요. 김삼식기
    200 09:52 59
    72006 [컴퓨터/인터넷]  outlook 보내기/받기 를 눌러야 받아지는 사태.. 에덴의검
    500 09:41 43
    72005 [기타]  이 여자 이름이 뭔가요? (5) 스샷첨부 중고나라
    300 09:21 261
    72004 [TV/영상]  노래 하나만 찾아주세요~ 힘나
    500 05:55 82
    72003 [컴퓨터/인터넷]  엑셀 질문드립니다 (1) 스샷첨부 빙과
    200 04:51 86
    72002 [취미/생활]  로드바이크 입문자 질문입니다(부속푸품구매) 뿌락클
    200 02:33 91
    72001 [컴퓨터/인터넷]  랩탑 밧데리 (전원연결됨 충전중은 아님) 현상 (1) 쟈카리
    500 01:54 90
    72000 [교육/학문]  영어 해석좀 부탁드립니다. (1) 눈이오는날
    200 00:38 120
    71999 [TV/영상]  이 연예인 누구인가요?! (2) 스샷첨부 epub
    200 00:31 349
    71998 [컴퓨터/인터넷]  이토인지 인터넷인지 (2) Qqu꾸
    200 00:30 130
    71997 [컴퓨터/인터넷]  노트북에 3G 모뎀 사용을 시도해보다가.. (1) 그냥그대로
    500 00:26 118
    71996 [컴퓨터/인터넷]  sd카드가 손상되어서 포맷하라고 하는데 파일 복구 가능한가요? (5) 우포효효아래
    221 09-01 127
    71995 [기타]  괜찮은 영어 이름 없을까요 ?? (9) 눅눅당근
    200 09-01 126
    71994 [게임]  NVIDIA 에서 GTA5를 최적화를 하면 ..왜 제그래픽보다 더 높게 잡는건가요...? 이게 맞긴 한건지...모르겠어요..... 좀 알려주세… (1) 다리먹는문어
    2000 09-01 179
    71993 [교육/학문]  사회조사분석사 2급질문 (3) 정현복
    200 09-01 82
    71992 [토렌트]  토렌트파일 오류 관련 질문이요 (5) 스샷첨부 SpecialU
    200 09-01 73
    71991 [컴퓨터/인터넷]  ssd usb 구매하려고 합니다. (1) logina777
    500 09-01 130
    71990 [게임]  패스트핑 설치가 안되네요 지락
    200 09-01 67
    71989 [컴퓨터/인터넷]  직각으로 된 반듯한 폰트체 없나욤? (1) 데코모리
    200 09-01 137
     1  2  3  4  5  6  7  8  9  10  다음