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

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

  • 클레오 채택답변수 (157)
  • 상어칭구 채택답변수 (52)
  • 야감자 채택답변수 (19)
  • Siloa 채택답변수 (12)
  • 주백통통 채택답변수 (11)
  • 마츠이쥬리나 채택답변수 (11)
  • 도조 채택답변수 (11)
  • 페이마임 채택답변수 (10)
  • 카나신 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 333
    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
    70849 [기타]  영어 번역 좀 해주실분 (2) 여행여행여행
    1000 16:01 39
    70848 [기타]  대용량 데이터 저장하는 사이트좀 추천 부탁드립니다. (3) kdjlw
    200 15:29 59
    70847 [컴퓨터/인터넷]  LG그램 혹은 동급 노트북중 추천 부탁드립니다.. 적월운
    500 15:15 49
    70846 [취미/생활]  비행기표 선택좀 질문드립니다 (2) 쿡아일랜드
    200 15:05 53
    70845 [교육/학문]  영어문장 번역부탁드립니다. mussa
    200 14:56 32
    70844 [기타]  다 쓴 문화상품권 번호 구합니다 책의향기
    500 14:55 40
    70843 [컴퓨터/인터넷]  인터넷 임시 폴더 질문입니다 vnfmsg
    200 14:46 26
    70842 [기타]  자동차 보험 관련 질문 드립니다. (2) 황혼v
    500 14:42 22
    70841 [컴퓨터/인터넷]  이거 해결 방법좀 스샷첨부 공기3
    500 14:33 49
    70840 [교육/학문]  엑셀파일 보고서? 참고자료? 잘 만드시는분 계신가요 (2) 스샷첨부 인혜스타
    1000 13:02 86
    70839 [경제/재테크]  편의점 아르바이트와 주휴수당관련하여 질문드립니다. (1) 승굴이
    1180 12:57 58
    70838 [컴퓨터/인터넷]  필터링 뚫을 수 있는 용자분을 찾습니다. (8) 윤문씨
    1000 12:40 165
    70837 [컴퓨터/인터넷]  특정사이트 접속하면 인터넷 속도가 느려지는 현상..IP주소를 타인에게 알려줘도 상관없나요? (1) 니뽄토끼
    200 12:26 57
    70836 [기타]  마우스에다 키를 설정하고 싶은데욤... (1) 아기영혼11
    200 11:27 63
    70835 [컴퓨터/인터넷]  한글오피스 문단 처음 기호? (1) 천운처럼
    3000 08:43 111
    70834 [기타]  서울에 커플끼리 조용하게 저녁에 산책할수 있는곳 없을까요? (12) ㅁ딕ㅁ디고ㅓ
    400 08:11 176
    70833 [컴퓨터/인터넷]  작업표시줄 색깔 질문입니다. (1) 미숫가루우유
    200 07:56 82
    70832 [컴퓨터/인터넷]  usb에서 열었던 문서파일 (1) 기가팍팍기가…
    500 07:52 103
    70831 [쇼핑]  바지를 삿는데. 치수를 몰라서... (1) 울산사람
    200 07:16 113
    70830 [취미/생활]  Lg Gpro2 액정 손상 질문입니다 스샷첨부 다크림아
    400 06:20 82
    70829 [쇼핑]  빔프로젝트 uc40/gm60 가을찻집
    200 05:59 75
    70828 [취미/생활]  택배 반품 하려는데요 (1) 클락데일
    200 05:57 79
    70827 [컴퓨터/인터넷]  컴퓨터를 누가 건드린 흔적이 있다고 하는데 해결책이 필요합니다.. (1) 유부초밥
    250 02:56 262
    70826 [컴퓨터/인터넷]  하드디스크 절전모드 질문입니다. (2) 조각상
    300 02:39 81
    70825 [컴퓨터/인터넷]  구형컴에 그래픽 카드 GTX 960 업글? (3) 기승전결혼
    200 01:55 224
    70824 [컴퓨터/인터넷]  utorrent 삭제를 어케 하나요?? (3) 스샷첨부 dogson
    500 00:58 138
    70823 [컴퓨터/인터넷]  엠넷 결제하려는데 다날승인번호가 뭔지 모르겠어요.. (3) 세븐스푼
    300 00:15 60
    70822 [컴퓨터/인터넷]  크롬 팝업차단 확장프로그램 찾아요 (2) 순진소녀
    200 00:13 77
    70821 [TV/영상]  영화제목을 찾아요 (2) 세시e
    500 08-01 85
    70820 [게임]  ps4 전원안켜짐 문제 a/s접수 해보신분 계신가요? Elrain
    300 08-01 89
     1  2  3  4  5  6  7  8  9  10  다음