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

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

  • 유랑천하 채택답변수 (48)
  • 최대8자 채택답변수 (46)
  • 나도익명 채택답변수 (37)
  • 주백통통 채택답변수 (17)
  • adslsj 채택답변수 (16)
  • Kuno™ 채택답변수 (15)
  • 천안대문 채택답변수 (15)
  • 도조 채택답변수 (12)
  • 볼키케이오스 채택답변수 (12)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 268
    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
    54803 [게임]  포켓몬스터 같은 rpg 게임 재밌는거 없을까요? triangl2
    123 00:07 44
    54802 [TV/영상]  가수들직캠 펌관련.. (4) 쪼꼬맛딸기
    500 07-22 77
    54801 [기타]  만화책 자료실이 사라졌네요... (5) 스샷첨부 기루고로
    200 07-22 228
    54800 [기타]  sk 요금 미납 관련 무사백동수
    100 07-22 76
    54799 [기타]  다음주 해병대 입대입니다 (4) 반더레이실바
    111 07-22 112
    54798 [컴퓨터/인터넷]  하드 AS요 (2) 콩갸루갸루
    100 07-22 69
    54797 [쇼핑]  대용량 배터리팩 추천 좀 부탁드립니다. (10) 자외선
    500 07-22 93
    54796 [TV/영상]  다큐멘터리 질문 드려요. 제목이 뭔지 기억이 나지 않아요.. (3) altere1
    50 07-22 51
    54795 [컴퓨터/인터넷]  c언어 잠깐 질문드립니다. (8) 한번만줘
    50 07-22 149
    54794 [취미/생활]  핸드폰 중고 거래 시에 대리점에서 뭘 확인해야 하나용. (3) Reniaon
    50 07-22 53
    54793 [컴퓨터/인터넷]  컴퓨터 본체 앞에 있는 usb포트 위치가 뒤로 밀려났는데 어떻게 해야할까요?(사진첨부) (7) 스샷첨부 지구용사똘추
    50 07-22 129
    54792 [컴퓨터/인터넷]  이해하면 무서운 사진이라던데 ㅠㅠ 왜인지 모르겠네요 알려주세요 (6) 스샷첨부 420894
    50 07-22 292
    54791 [기타]  이토렌트 정보수정이 안되네요... (1) 히틀러대제
    50 07-22 78
    54790 [토렌트]  토렌트 사이트 추천해주세요... (1) 비둘기13호
    100 07-22 125
    54789 [컴퓨터/인터넷]  Malwarebytes Anti-Malware가 에러가 납니다 (2) 사시코노쿠세…
    200 07-22 52
    54788 [기타]  세금에 대해서 궁금한데여 (3) 로날도으하
    50 07-22 79
    54787 [교육/학문]  간단한 영작 부탁드리겠습니다.ㅠ (4) 정인영아나운…
    50 07-22 67
    54786 [교육/학문]  도를 깨쳤다고 하는 사람에게 시험하는 한 가지 방법은 무엇일까? (5) 판도라개객기
    50 07-22 156
    54785 [기타]  미드 24시 (3) 예스노예스하…
    51 07-22 109
    54784 [컴퓨터/인터넷]  인코딩없이 영상에 자막만 입힐 수 있는 프로그램 있나요? (3) beeing
    100 07-22 99
    54783 [게임]  스카이림 헤어패치했는데요 돼지고기김치…
    50 07-22 156
    54782 [게임]  스카이림 질문점요 스샷첨부 돼지고기김치…
    50 07-22 113
    54781 [기타]  박스형 선풍기를 창문(열어논) 상단에 고정시킬 방법 없을까요? (5) 관음죽
    200 07-22 149
    54780 [취미/생활]  만화 제목을 찾는데 알려주실분? (2) sice
    100 07-22 114
    54779 [컴퓨터/인터넷]  노트북 3개중에하나만골라주세요~~ (4) 혼내줘요
    500 07-22 103
    54778 [컴퓨터/인터넷]  누나가 노트북을산다는데 도와주세요!! (5) ㅁㄱㄴㄴ
    100 07-22 127
    54777 [취미/생활]  핸드폰에 이어폰 연결시 마음대로 작동되는 현상 질문 (2) 코토네
    777 07-22 72
    54776 [컴퓨터/인터넷]  아프리카 티비랑 비슷하게 좀 건전 한곳 없을까요? (2) 바이두짱
    500 07-22 131
    54775 [컴퓨터/인터넷]  게시판에서 동영상 재생 시 초록화면만 나옵니다. 부요리장상디
    100 07-22 37
    54774 [컴퓨터/인터넷]  폴더 잠금 프로그램있나요?? (2) TigerC
    100 07-22 90
     1  2  3  4  5  6  7  8  9  10  다음