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

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

  • donn 채택답변수 (22)
  • 이화에월담하고 채택답변수 (20)
  • 이토님 채택답변수 (18)
  • vmfkdla0 채택답변수 (16)
  • 능글이3 채택답변수 (16)
  • 나도익명 채택답변수 (14)
  • 스피두웨건 채택답변수 (11)
  • 유랑천하 채택답변수 (11)
  • lemo 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 414
    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 04-24
    [공지]  ※ 모바일 글쓰기를 지원합니다. 이토렌트
    0 04-09
    [공지]  ※ 추가답변채택 기능을 지원합니다. 이토렌트
    0 04-20
    [공지]  ※ 토렌트사이트질문,자료요청 금지 (질문자,답변자 같이 제재) 이토렌트
    0 08-25
    [공지]  ※ 질문과답변 게시판 이용안내 이토렌트
    0 03-28
    93484 [기타]  인터넷방송 하려하는데 태연짜앙
    200 12:21 29
    93483 [TV/영상]  구구단/세정/미나/나영 팬 여러분 혹은 티비 덕후분들 질문하나만요ㅠㅠ (2) 곰같은공대생
    400 12:05 25
    93482 [교육/학문]  계측기 및 유량계..벨브 우왕어
    300 11:41 55
    93481 [전자기기]  핸드폰 구매 대리점 vs 인터넷(?) 구매 (3) 선미인
    200 11:19 68
    93480 [취미/생활]  적외선, 자외선 필름 찾습니다... 돋가이ㅡ가온…
    2000 11:17 38
    93479 [컴퓨터/인터넷]  어도브 플래시플레이어 설치완료가 안되네요 ㅠㅠ (3) dlkdjf2
    300 10:26 56
    93478 [교육/학문]  일어 단어 뜻 질문이요. (4) 바람처럼살꺼…
    500 08:35 105
    93477 [경제/재테크]  주민등록 등본과 초본에 대해 잘 아시는 분 계시나요? (1) 펠리스왕
    1500 08:27 119
    93476 [교육/학문]  영어 질문입니다. (1) 공맹순자
    500 04:57 92
    93475 [게임]  pc판 오네찬바라 z2 카오스 영문패치 적용 아직 안되나여 (2) 페리돗트
    200 04:11 74
    93474 [기타]  편의점알바질문드려요.한국내처음알바인데요. (4) Alice3
    200 02:55 141
    93473 [교육/학문]  재료역학문제입니다!! (1) 스샷첨부 건군22
    1000 00:40 108
    93472 [컴퓨터/인터넷]  인텔 i5-3470 사용하고있는대 메인보드 어떤것을 사야될까요?? (1) 판미죠
    500 04-25 145
    93471 [컴퓨터/인터넷]  윈도우 재설치 관련 (부팅) (13) 봉주흨
    1000 04-25 150
    93470 [컴퓨터/인터넷]  ssd 하드 용량 문제.. (2) 각키♡
    500 04-25 178
    93469 [교육/학문]  라쳇 기어 처럼 한쪽 방향으로만 동력을 전달하는 구조 (5) 아듸위뮈
    500 04-25 109
    93468 [기타]  형님들 주휴수당이 없을수가 있는건가요? (6) 홀트비
    200 04-25 260
    93467 [컴퓨터/인터넷]  MFC 시리얼통신 프로그램 (1) 비열한마음
    400 04-25 169
    93466 [컴퓨터/인터넷]  윈도우10 익플11 문제! (6) 하아암
    500 04-25 190
    93465 [기타]  대출 연체로 사기 고소건 관련 질문입니다! (9) 럭셔리맨
    5000 04-25 248
    93464 [교육/학문]  스도쿠 질문 (1) 스샷첨부 엄지엄지척
    300 04-25 164
    93463 [기타]  운전면허 적성검사 갱신하는데 (4) 레드베일
    200 04-25 172
    93462 [교육/학문]  영어 질문 드립니다... (2) 스샷첨부 mqpfrzm
    200 04-25 117
    93461 [취미/생활]  준 프로급 운동선수들은 얼마나 시간을 들여 운동하시나요?? (1) 키스톤
    800 04-25 267
    93460 [기타]  미래설계 어떻게 하면 좋을까요 (1) 노력합시다
    500 04-25 104
    93459 [기타]  현대비앤지스틸에 대해서 아시는분 계신가요? wade09
    500 04-25 57
    93458 [전자기기]  스마트폰 vr 좀 잘 아시는분 계신가요 (3) 강당당당닭
    200 04-25 88
    93457 [기타]  av 유모 영상이나 사진 올리는것은 국내법에 위반되나요?? (3) 이니그마
    3000 04-25 227
    93456 [컴퓨터/인터넷]  엑셀의 어느 셀에 항상 "+5"가 적용되게 하는 법 (9) 레드레오
    200 04-25 232
    93455 [전자기기]  공기청정기 2개중에 머가 더 좋을까요? (8) 인생무상07
    500 04-25 270
     1  2  3  4  5  6  7  8  9  10  다음