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

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

  • 유랑천하 채택답변수 (51)
  • 최대8자 채택답변수 (48)
  • 나도익명 채택답변수 (35)
  • 주백통통 채택답변수 (17)
  • adslsj 채택답변수 (16)
  • Kuno™ 채택답변수 (15)
  • 천안대문 채택답변수 (15)
  • 도조 채택답변수 (15)
  • 포르토스 채택답변수 (13)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 272
    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포인트를 드립니다.

    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
    55025 [교육/학문]  그래머인유즈 전부 다 공부해 보신 분 있나요? 우힝힝
    200 17:11 14
    55024 [기타]  c# 다룰지 아시는 분? 한번만줘
    200 16:52 27
    55023 [교육/학문]  영작 부탁드리겠습니다. (1) 후루꾸낼름
    500 16:27 29
    55022 [컴퓨터/인터넷]  롤 + 인터넷 목적의 컴퓨터 어느정도 선에서 알아보는게 적당한가요? (1) 코토네
    777 16:16 56
    55021 [취미/생활]  카이지 다음걸 보고싶어요 펄볼그
    1000 15:49 51
    55020 [컴퓨터/인터넷]  컴퓨터 청소하다가 씨피유 핀(AMD)을 건드려서 휘었어요 (6) 긱사쟁이
    500 15:05 142
    55019 [컴퓨터/인터넷]  엑셀 동그라미 글씨에 넣는방법 (4) 돼지고기김치…
    200 14:44 157
    55018 [교육/학문]  영국 어학연수 다녀오신분? 스샷첨부 트래끼
    1000 14:18 60
    55017 [컴퓨터/인터넷]  공유기(n904ns)를 샀습니다. 공유기 관련하여 질문드립니다. (9) 라네리라
    2000 14:18 73
    55016 [컴퓨터/인터넷]  워드프로세서 실기 (2) grrggg
    200 14:00 52
    55015 [기타]  아반데 광고모델 이름 알 수 있을까요? (1) 스샷첨부 여신출장중
    1500 11:23 219
    55014 [기타]  옵티머스 g프로인데 국내에서 강화유리만 싸게 파는곳 좀 알려주세요. (4) 대심해
    200 10:44 129
    55013 [게임]  추억의 게임을 하나 찾고있어요 (2) ModelLyn
    200 10:05 181
    55012 [기타]  스마트폰에서 갑자기 이런 광고창이 떠요 (5) 스샷첨부 풀라이프
    500 09:34 172
    55011 [기타]  BGM 좀 알려주세요~ 제목 이랑 가수랑 알려주세요 (1) 닥치고추천
    200 08:27 62
    55010 [토렌트]  토렌트 사이트 추천좀 ㅜㅜ 제발...편집본올라오는곳 (1) zsfzfert
    200 08:10 137
    55009 [컴퓨터/인터넷]  프로그램 삭제해야되는 것 표시해주세요. (4) 스샷첨부 빈둥곰
    200 02:49 154
    55008 [컴퓨터/인터넷]  무슨 프로그램인지 그리고 삭제해야되나요? 설치해야되나요? (4) 스샷첨부 빈둥곰
    200 01:53 155
    55007 [컴퓨터/인터넷]  싸이트 질문 하나만 드리겠습니다. (3) PPUSAN
    3000 00:20 133
    55006 [토렌트]  토렌트와 비트토렌트의 차이점은 무엇인가요?? (3) ♥주니엘♥
    200 07-27 231
    55005 [TV/영상]  c언어 질문입니다... (3) 스샷첨부 콜로서스
    200 07-27 198
    55004 [기타]  핸드폰 분실해서 친구 공기계 갤럭시 넥서스로 유심을 사서 꼽았는데도 인식이 안됩니다. 왜그러죠? (10) 아빡이
    300 07-27 163
    55003 [컴퓨터/인터넷]  HTML 질문드릴게요~! (2) 내모든삶
    700 07-27 90
    55002 [경제/재테크]  달러->유로 환전 질문 (4) 소도둑카우킹
    200 07-27 73
    55001 [경제/재테크]  우드블라인드 시공및 견적좀 ㅜㅜ (2) 어둠의제왕
    200 07-27 88
    55000 [건강/의학]  라식 해보신분 답변좀 ㅎ (8) 계란과자
    200 07-27 123
    54999 [컴퓨터/인터넷]  엑셀 질문좀요 (4) dkerdf
    1000 07-27 87
    54998 [컴퓨터/인터넷]  핸드폰으로 와이파이 접속시 공유기에 접속이력이 남나요? (6) wmfruc
    1000 07-27 188
    54997 [컴퓨터/인터넷]  키보드 마우스 추천좀 해주세용 (3) 이오로이신라
    500 07-27 87
    54996 [기타]  추석에 제주도로 여행을 갑니다. (1) 겸땡
    500 07-27 101
     1  2  3  4  5  6  7  8  9  10  다음