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

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

  • 아치미슬 채택답변수 (149)
  • 나눔의즐거움 채택답변수 (34)
  • 나도익명 채택답변수 (23)
  • 까치와엄지 채택답변수 (19)
  • 겨울숲 채택답변수 (15)
  • 유랑천하 채택답변수 (14)
  • donn 채택답변수 (13)
  • nick4 채택답변수 (11)
  • GAZUA™ 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 432
    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 03-28
    103527 [경제/재테크]  연말정산을 어떻게 하는지요? (3) wlstjr
    500 12:40 70
    103526 [컴퓨터/인터넷]  윈도우 10용 32비트 익스플로러를 받아야 하는데 링크좀 (3) 쉐이커
    300 10:39 112
    103525 [전자기기]  폰 요금제로 고민입니다 ㅠ ㅠ (2) 스샷첨부 봉사왕
    1000 09:55 95
    103524 [전자기기]  폰 성능차이에 대해서... (3) 소프트버터링
    300 09:24 176
    103523 [기타]  자전거 유압식 브레이크에서 기름이 조금 샜습니다 (4) pro80
    1000 02:01 145
    103522 [컴퓨터/인터넷]  HP 엑셀레이터 관련 질문이요 테디비어
    200 01:42 55
    103521 [교육/학문]  글쓰기와 관련된 좋은 책 추천 부탁드립니다. (14) 조용한하늘
    700 00:22 53
    103520 [교육/학문]  국어사전 괜찮은 것 추천 부탁드릴게요! (3) 조용한하늘
    300 00:17 44
    103519 [건강/의학]  미세먼지 어떡하죠.. (1) anfaksgd
    200 02-25 98
    103518 [음악]  유튜브 조회순 보는법 (1) 내가니다
    500 02-25 158
    103517 [컴퓨터/인터넷]  2400g 에 램8(4*2) 이면 피파온라인4, 피파18(다음버전)까지 원할하게 구동될까요? (3) apvltmxh
    200 02-25 102
    103516 [TV/영상]  해외여행시 메모리카드 용량 해결 어떻게 하시나요? 백업이라던지, (5) 펜타곤
    300 02-25 87
    103515 [TV/영상]  롤챔스 브금.. 질문 (2) 백이이
    200 02-25 51
    103514 [취미/생활]  CGV 맨뒤 스탄대드석 예매했는데요. (2) 아리가싸
    200 02-25 180
    103513 [기타]  베트남 가는데요.호텔 검색 어플이 뭐가 있나요?? (4) nononara
    300 02-25 131
    103512 [컴퓨터/인터넷]  파이어폭스 쓰는데 구글이미지 검색시 먹통.. (2) sfqwefe
    200 02-25 61
    103511 [기타]  차량가액 확인방법 (1) GGMU
    200 02-25 310
    103510 [컴퓨터/인터넷]  JSP session 관련 질문 (2) 슈야빠
    400 02-25 67
    103509 [취미/생활]  레알 마드리드 티켓 예매 문의. (2) 이닝히터
    1000 02-25 110
    103508 [음악]  총소리, 쨍그랑, 종소리 등등 그런 사운드클립 구할 수 있는 사이트가 있을까요? (3) 가마타츠
    2000 02-25 104
    103507 [컴퓨터/인터넷]  혹시 메가링크 사이트 아시는분 있나요? 슴가매니아
    500 02-25 54
    103506 [컴퓨터/인터넷]  놋북에 있는 동영상파일을 크롬캐스트 이용해서 TV로 볼 수 있는 방법은 없나요? (3) 노구스
    500 02-25 60
    103505 [전자기기]  노트8 광고 팝업 삭제 방법 부탁드려요~ (1) 영혼까지베토…
    200 02-25 115
    103504 [컴퓨터/인터넷]  스캐너 설정에서~~ (5) 스샷첨부 CalRi
    200 02-25 96
    103503 [교육/학문]  지구에서 멀리서 찍은 지구 사진 어떤 게 있나요? (1) LOOΠΔ
    500 02-25 211
    103502 [기타]  천장에 형광등이 늦게들어옵니다 공사비용이 얼마나들까요? (7) 브이γ
    400 02-25 250
    103501 [쇼핑]  직구를 하다가 통관고유부호가 틀리다고 연락이 왔는데요.. (6) 유정연♡
    350 02-25 243
    103500 [컴퓨터/인터넷]  인터넷속도가 안나와서 질문드립니다 (10) 싯딱뿡레
    1000 02-25 126
    103499 [쇼핑]  평창 패럴림픽 티켓 구입하고 싶습니다. (2) 우유맛우유
    1000 02-25 175
    103498 [취미/생활]  회사 내선전화 연결 (1) 끽연
    1000 02-25 199
     1  2  3  4  5  6  7  8  9  10  다음