홈으로 | 로그인 | 무료회원가입 | 포인트적립방법 및 계급정책 
자동
회원가입 | 아이디 · 비밀번호 찾기
자료실
 해외음원  | 해외동영상
 기타  | 토렌트외
회원공간
 전체게시판  | 인기게시판
 가입인사  | 출석체크
 실시간토크  | 짤방토크
 회원게시판  | 질문과답변
 유머엽기  | 유익한정보
 연예인  | 동물/식물
 영화  | 방송  | 애니
 게임  | 모바일겜  | 도서
 사용기/후기  | 베스트10
 스마트폰  | 컴퓨터
 스포츠  | 자동차
 취미/여가  | 패션/뷰티
 포토샵요청  | 플래시게임
 회원장터  | 회원투표
 회원모습  | 광고/홍보
 금융/투자  | 시사/토론
알뜰공간
 컴퓨터견적  | 업체게시판
 쿠폰/이벤트  | 알뜰구매
포인트공간
 포인트배팅  | 포인트퀴즈
 포인트선물  | 홍보포인트
 무료충전소 | 무료충전소2
 포인트경매 | 포인트복권
 포인트슬롯 | 포인트순위
이토공간
 공지사항  | 문의사항
 자주묻는질문  | 토렌트팁
 포인트적립 및 계급정책안내

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

  • 최대8자 채택답변수 (41)
  • 가구 채택답변수 (25)
  • 유랑천하 채택답변수 (23)
  • 주백통통 채택답변수 (21)
  • 디알이 채택답변수 (17)
  • 대마법사 채택답변수 (11)
  • kid4 채택답변수 (11)
  • QvQvQv 채택답변수 (11)
  • 일도양단 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 227
    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포인트를 걸었습니다. 답변이 채택되면 420포인트를 드립니다.

    SOAD 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이 될걸요?
         
         
    SOAD 2013-10-08 (화) 07:54
    감사합니다. 근데 그것말고도 문제가 있는것 같아요....
    recv 받는 곳에서 죄다 블럭이 걸려버리네요 ㅠㅠ
              
              
    너닉넴 2013-10-08 (화) 11:10
    블럭이 recv부분에서 걸려서 대기하는 것이라면 정상적인 동작입니다. recv 함수 자체는 비동기 함수가 아니기 때문에 데이터를 받을 때 까지 해당 함수에서 대기합니다.
    송송송님 2013-10-08 (화) 04:00
    &echoBuffer 라고 쓰게되면 포인터의 주소 자체를 뜻하고 포인터가 가르키는 주소와는 다릅니다.
    너닉넴님이 써 주신것처럼
    echoBuffer 라고 적어주시는게 맞습니다.
       

    질문과답변 질문상태  | 
     
    번호 제목 글쓴이 상태 포인트 날짜 조회
    [공지]  ※ 카톡유령방 및 초대장관련 게시물 등록금지 (자료요청 게시판이용) 이토렌트
    0 11-11
    [공지]  ※ 자료요청 금지합니다 (질문자,답변자 같이 제재합니다) 이토렌트
    0 05-08
    [공지]  ※ 질문과답변 게시판 이용안내 이토렌트
    0 03-28
    50090 [기타]  프로그램 개발 방법이 궁금합니다. (1) 스샷첨부 공짜
    500 15:44 71
    50089 [교육/학문]  글쓰기의달인분들저좀살려주세요 (5) 덱쵸
    500 15:15 62
    50088 [컴퓨터/인터넷]  솔리드웍스 물체 단면을 보고 싶은데....솔리드 잘아시는 분이요ㅜㅜㅜ (3) 랑나용
    1000 15:12 42
    50087 [취미/생활]  고시원 생활 해보신분? 조언좀 부탁드려요 (4) 하고싶은말
    100 15:10 61
    50086 [컴퓨터/인터넷]  바이두에서 이렇게 나오면 자료가 없는거 맞죠? (3) 스샷첨부 김야구
    100 13:34 168
    50085 [컴퓨터/인터넷]  에버레스트 최신버전 혹시 아시는분? (3) reze2010
    100 13:23 80
    50084 [기타]  전등설치 관련 질문드립니다.. (3) 요맘떼
    500 13:20 45
    50083 [컴퓨터/인터넷]  엔드라이브와 같은 웹하드에서 USB로 바로 파일 다운로드 할때... (3) 사아신
    100 12:58 54
    50082 [교육/학문]  회계(충당부채)에 관련 문제인데요.. 이해좀 시켜주세요; (3) 아는남자라구…
    100 12:35 42
    50081 [기타]  이 이어폰 먼가요??? (2) 스샷첨부 왕자탄백마님
    300 12:31 258
    50080 [취미/생활]  제주도 여행 코스 및 방법 짜는 것 도와주세요~ (2) 앙꼬33
    1000 12:21 64
    50079 [교육/학문]  3상 유도 전동기의 운전 회로 설명 가능하신분? (3) 스샷첨부 멀가나
    100 12:08 61
    50078 [컴퓨터/인터넷]  그래픽카드 질문좀 드려요. !!! (3) 꾹꾹서현
    100 12:05 67
    50077 [기타]  지금 남자친구가 있는지 물어보는 방법..? (6) 안선하
    100 11:44 294
    50076 [컴퓨터/인터넷]  공유기 추천 부탁드립니다. (5) 남쓰곰
    200 10:54 83
    50075 [컴퓨터/인터넷]  64g sd카드를 사서 갤4에 넣었는데 인식이안됩니다 ㅜ (2) egeerr
    120 10:52 171
    50074 [취미/생활]  부산 어디에 있는 절이라고 하는데 (2) 스샷첨부 고둥어
    500 10:32 209
    50073 [교육/학문]  피스파이스 추가질문 드립니다...... 스샷첨부 Eidoied
    100 10:20 49
    50072 [기타]  고용보험 실직급여 문의 드려요.. (5) FreddieP
    1000 09:18 119
    50071 [기타]  퇴직금?퇴직연금? 지급일 문의드려요. (5) 허랭득이
    1200 08:53 96
    50070 [컴퓨터/인터넷]  Ios업그레이드할때요 (3) 결고운손톱
    50 08:24 77
    50069 [교육/학문]  전자회로 피스파이스 질문드려요 (3) 스샷첨부 Eidoied
    100 07:55 69
    50068 [취미/생활]  섬인데 고기가 잡힐만한 위치가 좋은 곳은(원형 화분) 기준으로 부탂드립니다. (1) 스샷첨부 한국말하는미…
    100 03:48 135
    50067 [컴퓨터/인터넷]  마우스를 움직이지 않아도 마우스 포인터가 움직여요 (2) 마큐
    200 03:19 160
    50066 [교육/학문]  회로이론 문제 좀 풀어주세요.... 중첩원리 (5) 스샷첨부 김마로
    200 03:09 105
    50065 [게임]  도어키커 해 보신 분 ankwa
    50 02:10 68
    50064 [컴퓨터/인터넷]  제 컴퓨터에 윈도7 잘 돌아갈까요 ? (8) 스샷첨부 러호랑이
    500 01:39 174
    50063 [컴퓨터/인터넷]  partition을 할수 있는 방법이 있을까요? (1) 스샷첨부 한국말하는미…
    300 01:25 52
    50062 [교육/학문]  영어 작문 도와주세요 ㅜㅜ (10) 곰곰퉁
    200 01:24 71
    50061 [교육/학문]  트랜지스터 극성 찾기 + 데이터시트 찾기 문의드려요 ㅠ (6) 이히히뀨뀨
    200 00:43 66
     1  2  3  4  5  6  7  8  9  10  다음