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

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

  • 야이시골년아 채택답변수 (36)
  • 이미지뽕 채택답변수 (21)
  • 궁극의。변태 채택답변수 (19)
  • 이화에월담하고 채택답변수 (19)
  • 할머님 채택답변수 (15)
  • Jegilson 채택답변수 (15)
  • 나도익명 채택답변수 (14)
  • 언츠비 채택답변수 (12)
  • 뚜덜이 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 392
    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
    90183 [컴퓨터/인터넷]  제 메인보드가 기가인터넷 가능한지 알수있을까요? (4) 펄볼그
    500 19:21 32
    90182 [TV/영상]  2채널 블랙박스 가성비 좋은거 추천좀 부탁드려요 수모음희
    200 18:59 18
    90181 [TV/영상]  애니 제목 좀 가르쳐주세요. (1) 스인
    200 17:02 99
    90180 [컴퓨터/인터넷]  UHD 4K용 그래픽카드는 어떤 걸 사야하나요? (9) Linga21
    200 15:22 337
    90179 [컴퓨터/인터넷]  nodejs 에서 암호화한것을 순수 자바스크립트에서 복호화해서 쓰고싶습니다. 테디용
    500 15:04 61
    90178 [컴퓨터/인터넷]  50~60 노트북 뭐가 좋을까요? (2) 안전교육
    200 14:36 78
    90177 [컴퓨터/인터넷]  GA-X58A-UD3R보드에 이 부품들이 가능한지, 그리고 추가질문입니다. (3) 레드레오
    200 14:22 67
    90176 [컴퓨터/인터넷]  이토로그인 문제 (4) 후리리릭
    500 14:16 80
    90175 [기타]  법적인 형벌에 관한 질문... (5) 아듸위뮈
    200 14:10 65
    90174 [컴퓨터/인터넷]  베트남에서 1시간 단위 자료 받는 방법좀 알려주세요 (4) 방방
    200 14:04 123
    90173 [기타]  연말정산 이거 인쇄도 안돼고 다운도 안돼는데 왜그러죠ㅠㅠ (4) 스샷첨부 psjp37
    200 13:59 96
    90172 [기타]  Q,O,I,M 으로 시작하는 좋은 뜻을 가진 영단어가 뭐있을까요? (7) ggamosng
    1000 13:25 81
    90171 [컴퓨터/인터넷]  대한항공 사이트 안들어가지는데.. (1) t5435
    500 13:22 70
    90170 [TV/영상]  미드 elementary 무슨 내용인가요 (2) 뭉뭉빠야
    500 12:45 98
    90169 [쇼핑]  신용카드에 관련한 질문입니다 (5) 두심
    200 10:10 161
    90168 [취미/생활]  역삼역 근처 혼자갈만한 노래방 아시는분 !! (4) Room3
    345 09:06 176
    90167 [취미/생활]  이 텀블러 주소좀 찾아주실 능력자분 스샷첨부 해피씨
    200 08:55 377
    90166 [컴퓨터/인터넷]  노트북 하드디스크 교체 (5) 씨달새
    400 07:30 215
    90165 [컴퓨터/인터넷]  어른스러운 아이디 추천좀 (9) 스팸칼로리
    200 01:14 383
    90164 [컴퓨터/인터넷]  ip디스크 용량제한이 있나요? (4) 비끼라
    300 00:51 152
    90163 [쇼핑]  이 캐시미어 목도리 (머플러) 어디 브랜드인지 좀 찾아주세요.... (2) 스샷첨부 20대
    300 01-15 196
    90162 [쇼핑]  초등학교 입학하는 남자 아이 선물 (3) rodal002
    1000 01-15 415
    90161 [건강/의학]  헬스시 bcaa, 글루타민 섭취 요령 빤닝구
    500 01-15 149
    90160 [TV/영상]  걸그룹 안무 찾습니다 리더십특강
    300 01-15 274
    90159 [컴퓨터/인터넷]  윈도우 10에서 이전 운영체제 삭제? (3) 푸졸스홈런
    300 01-15 335
    90158 [기타]  군대 자대배치 관련 질문 있습니다. (10) LeeHN
    200 01-15 241
    90157 [컴퓨터/인터넷]  Skype(스카이프) 로그인 세부정보 인식 못한다는 오류가 납니다. (1) 스샷첨부 확바꾸자
    300 01-15 83
    90156 [컴퓨터/인터넷]  이토렌트 사이트만 로그인이 오류가 계속뜨네요...ㅜㅜ (1) 폭음반도
    300 01-15 113
    90155 [교육/학문]  천주교 사제 질문 (7) 카본스틸맨
    200 01-15 235
    90154 [게임]  스팀에서 게임구매하려는데요 .... 태연짜앙
    200 01-15 126
     1  2  3  4  5  6  7  8  9  10  다음  맨끝