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

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

  • 나도익명 채택답변수 (55)
  • 패왕색패기 채택답변수 (32)
  • 익명I 채택답변수 (20)
  • 능글이3 채택답변수 (13)
  • Diogenes 채택답변수 (12)
  • 이화에월담하고 채택답변수 (11)
  • 페이마임 채택답변수 (10)
  • 언츠비 채택답변수 (9)
  • 야쿠츠크 채택답변수 (9)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 382
    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
    85204 [취미/생활]  근력운동 추천 (2) 미니옵
    200 15:55 81
    85203 [토렌트]  이토렌트 글쓰기 본문에 이미지 넣는 링크는 어떻게 해야 하나요? (3) 콩갸루갸루
    200 15:39 30
    85202 [컴퓨터/인터넷]  제 노트북에서 카스글옵, 오버워치 구동가능할까요...? (1) 우왕어
    200 15:35 45
    85201 [컴퓨터/인터넷]  ms word 2010 구하는 법 (3) 룃수
    500 15:30 65
    85200 [컴퓨터/인터넷]  윈도우 10 업데이트 실패(KB3176934) (1) 스샷첨부 열명
    1000 15:15 76
    85199 [TV/영상]  일본예능제목좀 알려주세요(사진첨부) (2) 스샷첨부 older4
    200 15:13 70
    85198 [게임]  파크라이3 실행오류 해결방법 있나요? 화살이어디갔…
    300 15:06 22
    85197 [기타]  취업시 생활기록부, 보증증권 요구 궁금합니다 (5) 유나군
    200 14:10 100
    85196 [쇼핑]  중국(천진)가면 꼭 사와야되는 것 있을까요? (6) ll잉명ll
    300 13:44 136
    85195 [토렌트]  집밥 백선생2를 한번에 다 받을 수 있는 방법이 있나요? (1) 레드레오
    200 13:37 82
    85194 [기타]  이 마크가 어느 차인가요? (2) 스샷첨부 레드레오
    200 13:04 290
    85193 [기타]  lte G3 비트 3G 요금제 인식에 대해서 질문할께요 (2) lQandAl
    1000 12:53 62
    85192 [컴퓨터/인터넷]  이거 호환성 맞을까요? 시피유랑 메인보드요 (4) 스샷첨부 처임입니다
    500 12:52 87
    85191 [컴퓨터/인터넷]  컴퓨터 껏다 켯는데 (6) 스샷첨부 빵보a
    200 12:02 221
    85190 [컴퓨터/인터넷]  오토마우스(오토클릭) 질문입니다 (1) 추천요정
    300 11:25 139
    85189 [기타]  동남아 대만여행, 여행사 추천 부탁드립니다 (1) 가재는송편
    200 10:46 78
    85188 [기타]  자동차(신차) 구매 시 들어가는 세금 혹은 보험료 등등 알고싶어요 (3) 윤평
    500 09:59 92
    85187 [기타]  스마트폰 궁금한게있습니다 (1) 서울마님
    500 09:20 80
    85186 [교육/학문]  절대평가 상대평가 (6) 랑나용
    500 09:17 139
    85185 [교육/학문]  일어 질문요 (9) 스샷첨부 바람처럼살꺼…
    500 08:37 119
    85184 [건강/의학]  울산 내과 괜찮은 곳 .. (3) anfaksgd
    200 07:47 80
    85183 [건강/의학]  기관지 전문병원 추천해주세요 (1) 형소
    500 07:42 58
    85182 [쇼핑]  노트7 사고 싶습니다만... 예약판매 사은품.. (3) Inteli
    500 02:34 280
    85181 [기타]  소설 제목좀알려주세요 긴고주
    700 01:20 102
    85180 [게임]  삼국지관련 rpg cd게임?이었던거 같은데 이름이 생각이 안나네요 ㅠ (2) PH연
    500 00:58 186
    85179 [컴퓨터/인터넷]  하드가 사라졌어요? (1) 스샷첨부 kk007
    500 08-29 243
    85178 [컴퓨터/인터넷]  비트락커된 하드 포맷후 기존자료 복구 되나요? (6) 모래선
    300 08-29 141
    85177 [쇼핑]  100만원 상당의 노트북 가장 저렴하게 구매할수 있는 인터넷 쇼핑몰 조언부탁드립니다. (2) 쉥퉁이
    200 08-29 179
    85176 [컴퓨터/인터넷]  윈도우10 설치질문 (1) 스샷첨부 kk007
    300 08-29 150
    85175 [컴퓨터/인터넷]  그래픽카드 고장 (1) 스샷첨부 우롸오랑
    500 08-29 182
     1  2  3  4  5  6  7  8  9  10  다음  맨끝