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

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

  • 나도익명 채택답변수 (69)
  • 패왕색패기 채택답변수 (49)
  • Diogenes 채택답변수 (25)
  • 의적™ 채택답변수 (24)
  • 능글이3 채택답변수 (16)
  • 이화에월담하고 채택답변수 (13)
  • OOBERec 채택답변수 (11)
  • 혼자잘살기 채택답변수 (11)
  • 익명I 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 379
    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
    84103 [컴퓨터/인터넷]  컴퓨터 모니터가 .. 스샷첨부 d어린왕자
    200 23:50 8
    84102 [기타]  조립컴퓨터를 만드려고 하는데..... (1) 피요르
    2000 23:19 81
    84101 [교육/학문]  영어 질문입니다 (6) 공맹순자
    200 21:53 96
    84100 [토렌트]  윈도우10 스토어는 크랙 같은거 없나요 (1) 원펀앵
    200 21:10 136
    84099 [쇼핑]  테니스 셔츠를 골프할 때 입어도 되나요? (7) 스샷첨부 rkkkkkk
    300 20:27 248
    84098 [컴퓨터/인터넷]  간단한 자바스크립트 하나 짜주실분 (4) 스샷첨부 상실의시대
    1000 20:04 156
    84097 [취미/생활]  강아지 미용시켰는데 사납다는 이유로 비용을 더 받는데 그러게 있나요??? (6) 랙록
    200 19:06 460
    84096 [컴퓨터/인터넷]  랩탑과 모니터를 HDMI로 연결을 했는데요... (8) 스샷첨부 전숲인
    200 19:05 152
    84095 [건강/의학]  뼈가 다친건지 근육이 다친건지 대충 자가진단할 수 있나요?? (7) 이가드
    300 18:49 198
    84094 [컴퓨터/인터넷]  윈도우10 바탕화면 아이콘이 너무작은데 (12) 스샷첨부 갓유리
    332 18:18 213
    84093 [컴퓨터/인터넷]  마우스 옴론 버튼 직접 교체해서 써보신 분 계시나요? (8) 수막이
    200 16:24 152
    84092 [토렌트]  드라마 더블유(W)도 next릴이 있나요? (2) 치치♡
    200 14:56 215
    84091 [기타]  씽크대에서 물이 새요! (8) 스샷첨부 윤회사상
    287 14:52 276
    84090 [기타]  다 쓴 문화 상품권 핀번호 하나 구합니다. (1) kfield
    500 14:51 169
    84089 [TV/영상]  일본 영화 추천 좀.. (6) 비둘기씨
    2000 14:28 134
    84088 [게임]  할만한 pc 게임 추천좀요~ (4) 곰돌이피그렛
    500 14:27 145
    84087 [쇼핑]  샤오미 홍미노트3 프로 퀄컴판 (3) 뱅에돔
    5000 14:17 198
    84086 [기타]  공공장소에 관리비 미납호수를 게제하면 어떤 법에 저촉되나요? (6) 개똥이x
    500 11:36 390
    84085 [기타]  유튜브 동영상에서 떨어지는 스카이다이버 인원 수좀 알려주세요! (2) 가재는송편
    1000 11:00 125
    84084 [컴퓨터/인터넷]  윈도우즈 10 어도비 플래시 업데이트 설치가 안되요.. (2) 스샷첨부 히라테유리나
    1000 10:52 143
    84083 [토렌트]  뮤토렌트 무거워서 평 좋은 tixati 토렌트로 갈아탔는데요 (2) 건전한게살자
    300 10:50 327
    84082 [컴퓨터/인터넷]  WIX로 만들어진 사이트 백업 방법 (1) Valhalla
    200 10:48 62
    84081 [컴퓨터/인터넷]  컴퓨터 미디어플레이어들이 갑자기 안돼요..ㅠㅜ 난널사람해
    200 10:31 58
    84080 [쇼핑]  ABKO랑 한성 키보드 중 어떤게 더 좋나요? (6) 두동강
    250 10:00 135
    84079 [쇼핑]  이동식에어컨에대해 아시는분 (4) 선태양
    3000 09:36 202
    84078 [기타]  [기기변경] 스마트폰 2대를 서로 바꾸고 싶은데.. (2) vedder74
    200 09:04 118
    84077 [TV/영상]  장르불문 한국 밴드 노래 많이 들으시는 분... 태화강
    200 07:08 96
    84076 [컴퓨터/인터넷]  윈 10 닷넷 프레임워크 3.5 설치 아시는분 계신가요 (1) 인간곧등어
    5000 04:44 118
    84075 [컴퓨터/인터넷]  윈도우10 윈도우즈 업데이트 관련 질문입니다 (2) 쿠드린
    300 01:34 239
    84074 [기타]  이거 혹시 바퀴벌레인가요 ? (7) 스샷첨부 삐삐
    200 01:32 809
     1  2  3  4  5  6  7  8  9  10  다음  맨끝