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

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

  • yesdon2 채택답변수 (82)
  • 나도익명 채택답변수 (48)
  • 아치미슬 채택답변수 (47)
  • 최대8자 채택답변수 (43)
  • 둔황 채택답변수 (28)
  • 도조 채택답변수 (19)
  • lemo 채택답변수 (14)
  • 루아7 채택답변수 (12)
  • StealTh 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 315
    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
    65672 [교육/학문]  논문 번역 급해요ㅠㅠㅠㅠ (1) 비사마까로시
    300 13:55 40
    65671 [컴퓨터/인터넷]  프리미어 프로에서 자꾸 리플레이 됩니다... 아듸위뮈
    500 13:42 27
    65670 [컴퓨터/인터넷]  번역좀 부탁 드립니다. (2) 스샷첨부 천사같은피부
    200 13:09 42
    65669 [기타]  주차된 차량 접촉사고후 연락없이 갔네요 (3) 제이콥윤
    300 13:01 72
    65668 [TV/영상]  인코딩(동영상 변환) 간단한 질문드립니다. (5) 스샷첨부 니트로이드
    1000 12:15 38
    65667 [TV/영상]  런닝맨 몇화인지 알려주세요 (3) 오글아이
    1000 12:09 103
    65666 [게임]  게임 무설치 질문 (2) godhldma
    300 09:16 112
    65665 [컴퓨터/인터넷]  엑셀 관련 간단한 질문입니다. (1) 스샷첨부 Pixar
    200 09:13 74
    65664 [TV/영상]  스카이디지탈 1080i ts 파일 녹화설정법 부탁염 (1) esdsd007
    3000 08:04 78
    65663 [취미/생활]  일본 노래 찾아요 동영상 속 노래요 (2) 시련이
    300 03:13 110
    65662 [교육/학문]  영어 해석 부탁합니다. (1) 그리그
    1000 02:59 107
    65661 [기타]  책을 찾고 있습니다. (법 관련 책이고 검사가 썼다가 문제가 되서 검사직은 내놨다는 책 입니다.) (2) 강철곰탱이
    400 02:54 77
    65660 [컴퓨터/인터넷]  토렌트와웹하드중 어떤거가 쓰기에 더안전한가요? (7) 어그로잘끌음
    200 01:54 156
    65659 [기타]  이거 전기레인지 제품 모델명좀 (2) 스샷첨부 l최강팔라딘l
    200 01:46 126
    65658 [교육/학문]  미술이 감정을 불러일으킨사례 (2) 난뭘까요12
    200 00:56 171
    65657 [쇼핑]  베이지 가디건 코디 (1) 차가운매화
    300 00:47 99
    65656 [컴퓨터/인터넷]  노트북 수리해야 할까요 말까요? (7) 쾨니히
    200 03-27 123
    65655 [컴퓨터/인터넷]  akb48m.blogspot.tw 압축 비밀번호 부탁합니다 (7) 콩갸루갸루
    500 03-27 71
    65654 [기타]  기업은행 인터넷뱅킹 거래내역중에 (5) 연깍
    200 03-27 66
    65653 [교육/학문]  기계과 캡스톤 디자인 난감하네요. (3) 끌이
    777 03-27 97
    65652 [토렌트]  Tribler 트래커추가 EOS6D
    200 03-27 53
    65651 [컴퓨터/인터넷]  윈도우 8.1 64비트 정품 인증이 풀렸어요. (9) 멀라임마
    200 03-27 163
    65650 [컴퓨터/인터넷]  아이피타임 공유기 질문입니다. lg 인터넷 (5) 김똥스
    500 03-27 86
    65649 [교육/학문]  심리학적 접근법 질문이요 (1) 참치커피
    600 03-27 72
    65648 [컴퓨터/인터넷]  컴퓨터 업그레이드 (6) 스샷첨부 TJGH
    200 03-27 123
    65647 [기타]  개명할려는데 작명소 추천좀해주세요. (4) 잘래
    300 03-27 71
    65646 [기타]  일본 영화를 찾고 있어요 (1) 인튜
    300 03-27 95
    65645 [TV/영상]  BGM이 궁금합니다. (1) Lyon
    300 03-27 75
    65644 [컴퓨터/인터넷]  외장하드 속도 질문입니다... (3) fkeldhtm
    200 03-27 57
    65643 [기타]  신한카드(체크카드, 신용카드) 관련 질문좀 드려봅니다... 이번에 신한 cj one 카드를 하나 만들었는데요~ (2) ahddld
    2000 03-27 90
     1  2  3  4  5  6  7  8  9  10  다음