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

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

  • 나도익명 채택답변수 (39)
  • 이미지뽕 채택답변수 (30)
  • 궁극의。변태 채택답변수 (21)
  • 짐군 채택답변수 (20)
  • 야이시골년아 채택답변수 (16)
  • 오타장군111 채택답변수 (13)
  • 이화에월담하고 채택답변수 (13)
  • 의적™ 채택답변수 (11)
  • donn 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 403
    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
    91445 [토렌트]  요즘 직캠 안올라오는 이유가뭐죠? (6) adadadsd
    200 16:45 124
    91444 [TV/영상]  통수에 통수치는 우리나라 영화 추천 좀 해주세요. (3) 장안문
    777 16:29 60
    91443 [기타]  전세계약 관련 전문가 분들 도와주세요 (1) 천하장사
    2000 15:46 74
    91442 [경제/재테크]  위례신도시 당첨되었는데. 의견좀 묻습니다. (6) 방대기
    500 14:02 187
    91441 [기타]  뱅뱅사거리 주변 맛집 추천해주세요~ (1) 인나임마
    300 13:27 72
    91440 [컴퓨터/인터넷]  컴퓨터 오프라인 매장 추천좀 해주세욥 (2) 곧저승으로감…
    833 13:26 94
    91439 [기타]  썬크림과 바세린 그리고 클렌징오일에 대해 질문합니다.. (1) 새침E
    200 13:21 57
    91438 [경제/재테크]  연말정산 환급에 관해서 질문 드릴게요 (3) 코노ㅅ바
    200 12:59 116
    91437 [컴퓨터/인터넷]  해결완료~ (3) Damduk
    2000 11:40 120
    91436 [전자기기]  아이폰 화면이 왜 안꺼질까요?? (2) 히스토리아
    500 11:25 87
    91435 [기타]  이 시계 모델명을 알고싶습니다 (3) 스샷첨부 재즈잭래빗
    200 11:14 201
    91434 [컴퓨터/인터넷]  PC를 포맷하지 않고, 그동안 사용했던 흔적이나 개인정보를 완전히 지우려면 어떻게 하나요?? (7) 이토질문왕
    500 09:45 320
    91433 [경제/재테크]  전세 만료 후 전세금 돌려받을때 (4) 고릴라뉨
    500 09:01 225
    91432 [기타]  보병과 전차부대랑 합동훈련은 안하나요 ? (3) 섶다리
    200 06:37 156
    91431 [TV/영상]  트위치와 유튜브를 동시송출 하고있는데요. (1) noke1
    2000 00:56 234
    91430 [건강/의학]  모니터 밝은부분을 눈으로못보겠어요 (2) 유녀
    200 00:16 164
    91429 [기타]  네이버 대용량 파일 설치가 안되는데 봐주세요~ Deviant
    700 02-23 89
    91428 [음악]  에미넴 노래중에 겁나 쎈거 뭐있나요? (6) 꿀꿀꿀
    200 02-23 166
    91427 [토렌트]  LG 인터넷 핑손실 (5) 스샷첨부 미니옵
    257 02-23 361
    91426 [전자기기]  c.delay s.delay 홈시어터 기능 (2) kinghn
    200 02-23 64
    91425 [기타]  오늘 아침 6시에 했던 걸어서 세계속으로 몇회인가요? (1) yarnis
    200 02-23 134
    91424 [경제/재테크]  이거 어떠케 하면 될까여? (10) smileaga
    200 02-23 171
    91423 [건강/의학]  몸에 열이나요... (2) 이하늬다
    300 02-23 185
    91422 [경제/재테크]  신용체크카드 쓰시는분 있나요?? (7) YouDongN
    1500 02-23 447
    91421 [음악]  cd하고 usb하고 음질차이가 있나요 (12) 맥크리장애인
    200 02-23 334
    91420 [기타]  치과 신경치료 중인데 술먹도 상관 없나요? (6) 아리야스
    500 02-23 263
    91419 [컴퓨터/인터넷]  컴퓨터 램 꽂는 곳이 뜨겁습니다 (4) 푸졸스홈런
    400 02-23 293
    91418 [컴퓨터/인터넷]  컴퓨터 관련 질문좀드릴께요 (1) 지존송충이
    500 02-23 117
    91417 [음악]  벅스 뮤직 니나노 클럽? 질문드려요. (3) 서서호
    200 02-23 107
    91416 [토렌트]  바이두 메시지인데 무슨 말인지... 궁금합니다. (2) 스샷첨부 아동보호소
    399 02-23 266
     1  2  3  4  5  6  7  8  9  10  다음