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

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

  • 도조 채택답변수 (51)
  • 최대8자 채택답변수 (31)
  • 첨단조 채택답변수 (23)
  • 포르토스 채택답변수 (22)
  • Nujabes7 채택답변수 (15)
  • 침이슬아 채택답변수 (15)
  • kyopin 채택답변수 (14)
  • 아무계 채택답변수 (14)
  • 헤잇 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 293
    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
    60436 [컴퓨터/인터넷]  스마트폰 어플 설치 관련문제 간지나므
    400 18:27 5
    60435 [컴퓨터/인터넷]  프레임워크 오류가 뜨네요... 스샷첨부 핑키퐁키
    249 18:24 11
    60434 [TV/영상]  일어 자막 있는 일드는 어디서 구하시는지 궁금합니다.. geniiwoo
    200 18:23 14
    60433 [기타]  대전 복합터미널에서 마산시외버스 터미널가는건데요! (1) 스샷첨부 인과응보
    200 18:12 30
    60432 [TV/영상]  음료수 술이나 광고중 수영장에서한 광고 기억나시는분... 살기싫다
    300 18:11 15
    60431 [컴퓨터/인터넷]  페이스북 or 이미지 따오기 비텐펠트
    200 17:20 40
    60430 [컴퓨터/인터넷]  ㅠㅠ도와주셔요 (1) 스샷첨부 웅웅이웅웅
    200 17:17 66
    60429 [기타]  티스토리 초대장 하나더 필요하네요. (1) 운둔자x
    3000 17:12 33
    60428 [컴퓨터/인터넷]  컴퓨터 재부팅이 안됩니다. (10) Goatlord
    500 17:12 38
    60427 [건강/의학]  가정용 치석 제거기 사용하시는 분 계신가요??? (5) 곰돌이멍멍
    200 16:20 71
    60426 [기타]  맥주캔 위에 조그만한 뚜껑? 이 더 있는데 용도가 뭘까요? (2) 스샷첨부 Hungryⁿ
    300 16:18 95
    60425 [컴퓨터/인터넷]  컴퓨터 잘아는분 윈도우핫픽스설치, 업데이트 충돌 등등 (3) 상동구이
    500 16:04 56
    60424 [취미/생활]  자택 번역알바?를 해보고 싶은데 (4) Ingsoc
    500 15:57 60
    60423 [쇼핑]  온수매트 좋은거 써보신분 조언좀 부탁드립니다. (2) 열명왕
    300 15:54 43
    60422 [쇼핑]  아이폰 5S 구입 관련 질문 드려봅니다 (1) MOHAVE
    500 13:38 86
    60421 [쇼핑]  이옷 어디꺼인줄 알수있을까요?? (1) 스샷첨부 하레와크롱
    200 13:26 125
    60420 [컴퓨터/인터넷]  자바 while문 질문드려요 (7) 내가사는길
    200 13:18 66
    60419 [컴퓨터/인터넷]  공유기 네트워크 관련 질문 (7) 강하르방
    200 13:09 64
    60418 [쇼핑]  아이폰5 케이스 판매하는 곳 좀 찾아주세요ㅠ (2) 쿠파쿠파
    300 12:30 45
    60417 [컴퓨터/인터넷]  SSD 추천 및 몇가지 질문이요...^^ (2) 블루아이57
    500 12:26 107
    60416 [기타]  안드로이드... 베가:LTE-A 폰 루팅 도움 좀 주세요... 와이즈먼
    200 12:03 34
    60415 [기타]  공군입대.. 잘아시는분.. (4) 스샷첨부 블랙개
    200 11:33 104
    60414 [컴퓨터/인터넷]  엑셀 VBA 질문입니다. 전뱅ㅁ
    1000 11:20 44
    60413 [컴퓨터/인터넷]  테블릿 pc 추천좀요 (1) 풍부한지능
    200 11:18 60
    60412 [건강/의학]  이거 무슨 약인가요? (4) 스샷첨부 skdkasd
    200 10:49 131
    60411 [컴퓨터/인터넷]  JDownloader 2 로 4k 유튜브 다운할때 ffmpeg때문에 안되는데 알려주세요. AxDiNo
    300 09:25 45
    60410 [TV/영상]  인터스텔라 속 블랙홀 모습 왜그런가요? 충격이네요.. (11) 스샷첨부 광폭
    500 06:55 285
    60409 [토렌트]  토렌트 완료시 초록색이 아니라 빨간색인 이유가 뭔가요? (2) wowow
    200 03:51 181
    60408 [취미/생활]  노래 찾고있어요. holiday 비슷한 노래인데 (2) 문엘프
    1000 03:21 73
    60407 [쇼핑]  해외 바지 사이즈.. (2) 칼라일s
    300 02:59 96
     1  2  3  4  5  6  7  8  9  10  다음