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

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

  • 나도익명 채택답변수 (54)
  • 의적™ 채택답변수 (37)
  • 패왕색패기 채택답변수 (35)
  • 대왕참치 채택답변수 (25)
  • 이화에월담하고 채택답변수 (24)
  • OuOaa 채택답변수 (22)
  • 내추럴본콜렉터 채택답변수 (15)
  • lemo 채택답변수 (14)
  • 혼자잘살기 채택답변수 (13)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 378
    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
    82942 [교육/학문]  영단기 하시는 분 아직 계시나요?? while
    300 08:09 51
    82941 [기타]  범죄를 저지른 국회의원들도 평생연금을 받나요 ? (1) 섶다리
    200 06:26 131
    82940 [기타]  7월 말에 제주도에 놀러가려고 하는데요 조용한하늘
    600 05:57 55
    82939 [기타]  큐베이스 저장시 질문 태연짜앙
    200 04:29 55
    82938 [쇼핑]  의류, 바지) 해당 이미지의 조거팬츠를 찾습니다. (4) 스샷첨부 벽진
    200 00:38 160
    82937 [경제/재테크]  혹시 제가 받을 수 있는 대출이 있을까요? (3) 하릴없다
    2000 00:35 124
    82936 [건강/의학]  제 다이어트에 대해 상담 좀 해주세요 (3) 탤탤미
    500 00:26 90
    82935 [컴퓨터/인터넷]  인터넷없이 컴퓨터로 녹화가능한 CCTV 나 카메라같은 제품이 있을까요? (3) 애매한나이28…
    500 00:22 155
    82934 [교육/학문]  혹시 영단기/해커스 맞추천 하실분 있으신가요? (2) 동광석
    200 00:08 55
    82933 [토렌트]  외국영화 자막도 같이 보려면 어떻게 해야해요?ㅠ (5) dmsay
    200 06-28 75
    82932 [게임]  다크소울1 8천원에 팔고있던데..온라인 사람많나요? (2) 실에이티s80
    700 06-28 148
    82931 [교육/학문]  중국어 학원 추천해주세요~!! (3) 야시로dd
    200 06-28 51
    82930 [컴퓨터/인터넷]  로봇? 보고 타조가 깜놀하는 짤/동영상 찾아주세요. 쏭박
    300 06-28 52
    82929 [컴퓨터/인터넷]  아이피타임 공유기 문의드립니다. (3) 꺼벙돌이
    300 06-28 91
    82928 [기타]  [스펙 비교 부탁드립니다]스카이 im 100 vs 아이폰 4s (3) 웨스트게이트
    300 06-28 156
    82927 [기타]  개통철회 해야할까요? (5) 네네네네넨네
    300 06-28 139
    82926 [기타]  고양이 일반쓰레기 물어뜯는거 어떻게 해결하세요? (7) 더글라스
    200 06-28 225
    82925 [기타]  수도사용량이 이번달에 갑자기 2배가 나오면 수도계량기가 문제가 있는걸까요? (3) 이이니쿠
    500 06-28 310
    82924 [기타]  강남패치 현재 접속되는 주소 아시는분? (4) teleken
    400 06-28 901
    82923 [취미/생활]  전동킥보드 추천부탁해요 (1) 홍오홍
    1000 06-28 88
    82922 [컴퓨터/인터넷]  인터넷 lgu+ 쓰다가 다른곳으로 바꿀려고 하는데요 티브로드는 어떤가요? (8) 미공개
    200 06-28 118
    82921 [건강/의학]  제꺼 인바디 뽑아봤어요 근육 어떻게 키워야할까요 조언 부탁드려요 (7) 스샷첨부 흔남흔녀
    1000 06-28 186
    82920 [TV/영상]  아이패드로 쿡을 보는데요 JTBC뉴스는 다시보기가 없나요? (5) 학점천사
    200 06-28 101
    82919 [기타]  핵무기 잡는 무기는 없나요 ? (3) 섶다리
    200 06-28 360
    82918 [컴퓨터/인터넷]  다음 팟플레이어 오류~!! (3) 스샷첨부 CalRi
    300 06-28 215
    82917 [기타]  ct100 탑승문의^^ (6) limjh606
    300 06-28 230
    82916 [기타]  곡성...화질... (3) 노시나리
    200 06-28 486
    82915 [컴퓨터/인터넷]  요즘 인터넷 가입은 어디서들 하시나요? (1) 부산삽니다
    200 06-28 138
    82914 [컴퓨터/인터넷]  채팅 예제 구현중에 DB 저장에 대해 조언부탁드립니다. (7) 썼빵
    500 06-28 103
    82913 [교육/학문]  해커스 영단기 추천 부탁드려요 (13) 꼼은꼼
    500 06-28 133
     1  2  3  4  5  6  7  8  9  10  다음  맨끝