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

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

  • 도조 채택답변수 (45)
  • 첨단조 채택답변수 (28)
  • 포르토스 채택답변수 (20)
  • kyopin 채택답변수 (19)
  • 최대8자 채택답변수 (19)
  • Nujabes7 채택답변수 (15)
  • 아무계 채택답변수 (13)
  • 헤잇 채택답변수 (12)
  • Kuno™ 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 292
    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
    60194 [쇼핑]  해외 직구 하려는데요 의류 칼라일s
    300 13:44 20
    60193 [건강/의학]  신경치료 하고있는데요. (1) 킴수우
    200 13:10 44
    60192 [취미/생활]  코베아 텐트 인데 정확한 모델명좀 부탁드립니다~ (2) 스샷첨부 블루마토
    3000 12:03 63
    60191 [쇼핑]  건전지로 켤수있는 미니전구 아시는분(칼채택) (2) 스샷첨부 늑대소년K
    1000 11:27 100
    60190 [기타]  외모 컴플렉스 때문에 남 눈치를 너무 많이 보며 살아요. 힘드네요............. (5) 다오루
    600 11:26 101
    60189 [기타]  난방텐트 추천 좀 해주세요. (1) 메이트런
    200 11:13 50
    60188 [컴퓨터/인터넷]  구글 자바 에러좀 봐주세용 (5) 스샷첨부 really
    200 11:08 39
    60187 [컴퓨터/인터넷]  외장하드이거포기해야하나요.... (4) 탱이러브
    359 10:58 98
    60186 [컴퓨터/인터넷]  금융감독원 금융감독원 개인정보유출 2차피해예방 서비스 스샷첨부 아피곤
    200 10:34 78
    60185 [토렌트]  몽강호의 백일자객 (2) 마신고양이
    200 10:33 59
    60184 [취미/생활]  일본 가이세키 요리 배울 수 있는 방법이 없을까요? (1) 김병연
    600 10:21 46
    60183 [TV/영상]  오래된 만화영화 제목 좀 갈켜주세요 (1) meilleur
    200 10:13 80
    60182 [컴퓨터/인터넷]  이거 원인 아시는분 계신가요? 스샷첨부 머천다이징
    200 10:09 78
    60181 [건강/의학]  울금 종류 추천 좀 해주세요(제가 만성위염입니다) (2) 영천사
    300 09:39 33
    60180 [기타]  이 작품이 뭔지 알수있을까요? (1) 엘브워드
    300 09:21 63
    60179 [기타]  전동 diy 카페도 있나요?? GolfR32
    300 09:03 67
    60178 [컴퓨터/인터넷]  윈도를 새로 설치했습니다 (6) 스샷첨부 어기야둥둥
    1000 08:49 108
    60177 [컴퓨터/인터넷]  유튜브 같이 자동으로 영어 자막을 만들어 주는 프로그램이 있나요? 류예프
    300 07:31 41
    60176 [게임]  요즘 핸드폰 게임 사람들이 많이하는 대세 게임 어떤게 있나요?? (2) 깊은구름
    200 06:11 111
    60175 [교육/학문]  물류관리사 자격증을취득하면 취업의 정도 (3) 긍정과웃음
    200 04:30 111
    60174 [컴퓨터/인터넷]  ts tp 파일 자르는 프로그램 (2) 투칸
    200 02:49 85
    60173 [취미/생활]  뉴에이지 작곡가 v.k克 앨범 좀 가르쳐 주세요. (2) Rusl
    400 01:43 45
    60172 [컴퓨터/인터넷]  USB 부팅 디스크만들려고합니다. (3) 서민왕
    200 01:31 93
    60171 [컴퓨터/인터넷]  pc에 메모리 추가하는법 (7) Arch1
    200 00:56 135
    60170 [컴퓨터/인터넷]  cpu-Z란 유틸말고 컴퓨터 사양 자세히 볼수있는 유틸잇을까요? (4) 살기시른넘
    200 00:41 134
    60169 [기타]  2박 3일정도 여행을 간다면.. (7) 로아레
    300 00:21 86
    60168 [TV/영상]  애니를보는데 외국어가나옵니다 (1) 이응이응크크
    200 00:18 86
    60167 [게임]  PES2013 마스터리그 선수선택 질문입니다 ㅠㅠ 마키아
    240 11-23 44
    60166 [기타]  예비군훈련 잘아시는분 (16) 스샷첨부 멍멍아빵먹오
    200 11-23 286
    60165 [TV/영상]  프리미어리그 중계할때 이미지 자료가 필요해요 (1) 스샷첨부 아자씨
    400 11-23 79
     1  2  3  4  5  6  7  8  9  10  다음