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

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

  • 나도익명 채택답변수 (38)
  • 패왕색패기 채택답변수 (34)
  • 대왕참치 채택답변수 (33)
  • 나쵸에맥주 채택답변수 (33)
  • 5235 채택답변수 (22)
  • 야감자 채택답변수 (14)
  • lemo 채택답변수 (14)
  • eT0RRENT 채택답변수 (11)
  • 레드XIII 채택답변수 (10)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 372
    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
    81777 [TV/영상]  엠넷 실시간방송 무료로 볼수있는곳 (1) 5mygot
    500 22:59 24
    81776 [컴퓨터/인터넷]  윈도우 10 사용중인데 설정한것이 재부팅 하면 초기화 됩니다. 이등별
    500 22:31 33
    81775 [컴퓨터/인터넷]  30만원 내외로 27인치 모니터 추천부탁드립니다. (3) 스샷첨부 도르메
    3000 21:16 117
    81774 [게임]  게임 좀 찾아주세여 (1) 큐르피아
    300 20:55 87
    81773 [교육/학문]  matlab 0, 1, 2 랜덤으로 10개 구하는 방법 알려주세요! (3) 추추루추추신…
    200 20:14 43
    81772 [기타]  폰을 바꿨는데 쓰던 폰 유심칩에 있는 정보 새 폰으로 어떻게 옮기나요? (2) 뗀석기
    300 20:11 84
    81771 [기타]  스마트폰 4극 연장케이블 찾습니다. (10) 스샷첨부 DUEz
    300 20:02 52
    81770 [게임]  하스스톤용 노트북질문 쿠마상1
    200 20:00 25
    81769 [쇼핑]  알리익스프레스 국가 입력 할때요... 0나띵0
    200 19:34 43
    81768 [컴퓨터/인터넷]  윈도우10 엣지 사용하는데 첨부파일 다운로드가 안됩니다;;; (1) 아가미닫아라
    500 18:49 58
    81767 [컴퓨터/인터넷]  익스11 다운로드 질문드립니다. (1) 고대인간이여
    200 18:14 43
    81766 [컴퓨터/인터넷]  작업 관리자 창이 이상하게 변했네요 (5) 스샷첨부 detorr
    500 18:14 69
    81765 [게임]  ps2 드래곤볼z 스파킹 메테오 정발판 일판bgm패치 GroundKeeper
    200 17:34 82
    81764 [컴퓨터/인터넷]  하드 추가 장착... 이렇게해도 괜찮겠습니까 ? (7) 스샷첨부 섶다리
    200 17:18 206
    81763 [경제/재테크]  마이너스 통장 관련 질문있습니다. (5) 이럼안되이자…
    500 17:13 104
    81762 [건강/의학]  제가 손과 발에 엄청 땀이 많습니다 (14) 릴라장
    1500 16:46 120
    81761 [취미/생활]  책상이나 테이블 위에 덮여진거 이건 어떤 재질인가요? (9) 스샷첨부 o달빛소년o
    200 16:20 144
    81760 [경제/재테크]  사회 초년생 보험관련 질문좀 드리겠습니다. (4) 와디지
    500 15:34 97
    81759 [쇼핑]  NBA 볼캡 모자 질문이요 (1) 스샷첨부 Pasadena
    300 15:29 86
    81758 [컴퓨터/인터넷]  키보드 입력기 질문요! (2) 스샷첨부 햝츄
    300 15:20 88
    81757 [쇼핑]  이런 시계줄 뭐라고 검색해야 하나요? (4) 스샷첨부 더네
    200 14:59 195
    81756 [교육/학문]  matlab 아시는분 도와주세요! (3) 추추루추추신…
    1400 14:44 65
    81755 [컴퓨터/인터넷]  태블릿 4기가이상 동영상 넣는법좀요 (3) 클리소벨
    200 14:13 99
    81754 [기타]  아이폰6 공장초기화 주기적으로 해주는게좋을까요? (3) ktor
    200 13:55 133
    81753 [컴퓨터/인터넷]  바이두 사용법에 관해서 (2) 뇌출혈적호
    200 13:08 105
    81752 [컴퓨터/인터넷]  30분마다 울리는 얼람앱 찾습니다. (5) 레드레오
    200 13:03 108
    81751 [컴퓨터/인터넷]  삼성 노트북9 에서 하드디스크 128 -> 256으로 교환하려고하면 (4) 아라리가났네
    500 12:56 75
    81750 [기타]  중고차 질문입니다 (3) 이지존
    200 11:55 94
    81749 [교육/학문]  영어,일본어,중국어 작문 가능하신분~! (6) 개판다
    200 11:18 103
    81748 [컴퓨터/인터넷]  cpu쿨러 탈착하는 방법 알려주세요.. (5) 스샷첨부 섶다리
    200 11:17 137
     1  2  3  4  5  6  7  8  9  10  다음  맨끝