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

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

  • yesdon2 채택답변수 (57)
  • 아치미슬 채택답변수 (45)
  • 최대8자 채택답변수 (39)
  • 나도익명 채택답변수 (35)
  • 각갓갓각 채택답변수 (21)
  • 둔황 채택답변수 (18)
  • StealTh 채택답변수 (18)
  • VongZa 채택답변수 (16)
  • hacienda 채택답변수 (13)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 310
    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
    64647 [컴퓨터/인터넷]  노트북을 포맷하는중에 생긴 문제좀 해결해주세요!!! (5000포인트추가) (2) 이미또
    3000 23:22 16
    64646 [취미/생활]  캐나다 여행 담배 소지 질문 (3) 씨암탉
    1000 22:44 64
    64645 [경제/재테크]  연금저축 감료 페널티 (1) 다크림아
    300 22:42 43
    64644 [기타]  옵티머스 g pro와 컴퓨터 연결 문제가 있는데요 (4) 뭐어
    500 21:57 58
    64643 [기타]  이산화탄소 누설점검 (1) 다크림아
    200 20:50 80
    64642 [교육/학문]  부산에 화공과 괜찮은 전문대 있나요?? (2) 깊은구름
    300 20:44 73
    64641 [TV/영상]  cgv 무비꼴라쥬로 상영한 영화 리스트 알수 있을까요? 뤄우
    500 19:57 40
    64640 [컴퓨터/인터넷]  컴퓨터 동영상 재생시 이상해요... (3) ajh6327
    300 19:50 96
    64639 [경제/재테크]  주택 담보대출 받았다가 연체하면... (3) 뭐그닥
    500 18:47 152
    64638 [게임]  원드라이브에서 용량이 큰 파일을 다운받는데요 (1) 다이몬고로
    3000 18:32 77
    64637 [컴퓨터/인터넷]  30만원대 서브 노트북 추천 해주세요~ (1) 제로니스다
    300 18:10 93
    64636 [컴퓨터/인터넷]  이거랑 비슷한 한글 폰트 뭐가 있을까요? (2) 스샷첨부 넬종완
    500 18:08 70
    64635 [기타]  월급 부분 지급에 관하여 질문 드립니다. (3) 김구라는김구…
    1000 17:46 116
    64634 [컴퓨터/인터넷]  가성비 좋은 프린터 뭐가 있을까요? (3) 밀개구리
    400 17:39 89
    64633 [토렌트]  일본 오리콘 차트 토렌트나 파일 구할 곳이... (6) 이정희
    1000 17:34 58
    64632 [컴퓨터/인터넷]  바이두 사용법 관련해서 ㅜㅜㅠ (2) 스샷첨부 리카찡
    200 17:00 101
    64631 [컴퓨터/인터넷]  포토샵 CC 2014 사용하시는분 질문.. 새 문서 사이즈 조절관련 (2) 스샷첨부 데코모리
    500 16:51 63
    64630 [기타]  티스토리 초대장 하나만 보내주실분 (2) 화풀어라
    200 16:47 61
    64629 [건강/의학]  긴장한 후에 (6) gujj
    300 16:15 88
    64628 [컴퓨터/인터넷]  제 메인보드인데 포트 번호를 알려주세요 (8) 스샷첨부 유기파
    254 15:39 150
    64627 [게임]  월탱 보너스코드 희망의다니엘
    440 14:56 87
    64626 [쇼핑]  핸드폰을 구매했는데 구매후에 갑자기 신분증을 보내달래요 (3) 축구장
    300 13:53 252
    64625 [컴퓨터/인터넷]  Power DVD 뒤로가기 질문 (3) 스샷첨부 데코모리
    200 13:37 67
    64624 [컴퓨터/인터넷]  압축파일에도 태그설정이 되나요? (6) 이2E
    300 13:18 61
    64623 [교육/학문]  빛의 3원색을 색의 3원색으로 환산하는법? (1) 아듸위뮈
    200 13:01 116
    64622 [기타]  월요일 아침 강남터미널에서 김포 까지 빠르게 가는 방법 질문합니다 (4) 飛擊震天雷
    1000 12:58 85
    64621 [컴퓨터/인터넷]  다음팟인코더 mp3 변환 문제 문의합니다. (1) Kuno™
    492 11:23 70
    64620 [기타]  예비군복 바지가 안맞아서 하나 살려고 합니다. 좋은 구입처 아시는 분... (6) 유하곡산
    200 11:11 177
    64619 [컴퓨터/인터넷]  듀얼 모니터 화면 보호기 설정 방법 질문드립니다. (2) Blitzen
    200 10:56 90
    64618 [TV/영상]  팟플레이어 64비트로 UHD 영상 4K HEVC 코덱 돌려봤는데... (5) 스샷첨부 데코모리
    500 10:35 193
     1  2  3  4  5  6  7  8  9  10  다음