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

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

  • babpul 채택답변수 (42)
  • 최대8자 채택답변수 (23)
  • 나도익명 채택답변수 (22)
  • yesdon2 채택답변수 (20)
  • 아치미슬 채택답변수 (18)
  • 지혜의나무 채택답변수 (18)
  • Chopin♡ 채택답변수 (17)
  • 패왕색패기 채택답변수 (13)
  • RJ45 채택답변수 (11)
       
    [컴퓨터/인터넷]

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

    글쓴이 : SOAD 날짜 : 2013-10-08 (화) 01:48 조회 : 318
    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
    66926 [컴퓨터/인터넷]  시퀀스 제어 잘 아시는분 대국민쿨하게
    300 10:55 25
    66925 [경제/재테크]  알바 수습 기간과 그 외에 대한 문의입니다. (3) 스샷첨부 유기파
    1100 08:10 59
    66924 [컴퓨터/인터넷]  웹 싸이트에 사진 오른쪽 클릭 않(?)되는 사진 save 하는 방법... (2) BoBo
    200 07:36 72
    66923 [경제/재테크]  금 매매.. (2) 칼라일s
    300 04:14 130
    66922 [TV/영상]  초인시대 3화에 나온 여배우 이름이 궁금합니다. (3) 스샷첨부 quickboy
    200 01:40 274
    66921 [TV/영상]  시작부분이 깨진 avi 동영상 파일 재생가능하게 만들 수 있는지요? (1) 불사주
    200 01:34 98
    66920 [건강/의학]  스포츠 마사지 크림?겔? 추천 부탁드립니다. (1) 가미라고
    200 00:21 69
    66919 [교육/학문]  뇌 신경 과학 쪽에대해서 아시는분? (1) Euclide
    500 00:15 102
    66918 [게임]  gta5 설치하고 런쳐실행하니깐 자꾸 이러게 나오네요 뭐가 문제인거죠? 스샷첨부 영혼LOVE
    200 04-27 86
    66917 [게임]  제가 gta5무설치판 다운받앗는데 락스타 활성화코드 어떻게하나요? (2) 영혼LOVE
    200 04-27 142
    66916 [기타]  영어질문 (2) 예스노예스하…
    200 04-27 78
    66915 [게임]  (필채택) 서든어택 하시는분 던파어택 이벤트코드 교환원합니다. (7) 쉐이머즈
    550 04-27 48
    66914 [컴퓨터/인터넷]  캐논 mg3170 복합기 무한잉크 관련 질문 입니다 (1) 홍이요
    200 04-27 40
    66913 [기타]  정규분포 표준편차 문제!! (2) 쩔지
    200 04-27 85
    66912 [토렌트]  마그넷 링크 오류에 관하여.... (2) 스샷첨부 퍼진호빵™
    1000 04-27 78
    66911 [컴퓨터/인터넷]  인강녹화에 관하여 여쭈어봅니다. (3) 밤하늘에별
    200 04-27 71
    66910 [TV/영상]  뮤직 비디오 를 찾아요 백마산왕자
    1000 04-27 61
    66909 [컴퓨터/인터넷]  공유기 추천쫌해주세요(vpn설정 기능 무조건 포함) 순실이
    200 04-27 61
    66908 [컴퓨터/인터넷]  5TB 외장하드에 돼지코 연결했는데 연결상태가 정상인가요? (5) 스샷첨부 가나다ABC
    500 04-27 150
    66907 [컴퓨터/인터넷]  윈7 사용중인 컴퓨터 윈도우 재설치 (1) sod22
    500 04-27 102
    66906 [컴퓨터/인터넷]  노트북 그래픽 MXM 규격 관련 질문입니다. relgoc
    250 04-27 41
    66905 [컴퓨터/인터넷]  메인보드를 바꿀려고 하는데요 cpu가 맞을까요 (3) 케람
    200 04-27 127
    66904 [기타]  어댑터와 충전기 입출력 (2) 창고캐릭
    200 04-27 82
    66903 [교육/학문]  러시아어 번역가능하신분 혹시 있으신가요? (1) 스샷첨부 니트로이드
    1000 04-27 109
    66902 [컴퓨터/인터넷]  다운로드 받는방법 (2) 원정대
    3000 04-27 118
    66901 [교육/학문]  토익시작하려는 (갓전역한) 청년입니다 (5) 힛합
    300 04-27 159
    66900 [취미/생활]  이런 에어콘 혼자 청소하려면 어떻게 해야할까요? (3) 스샷첨부 팽송
    600 04-27 145
    66899 [취미/생활]  비슷한 장르, 음색의 노래를 찾고 있습니다~~ (4) 떡배
    500 04-27 67
    66898 [쇼핑]  여성 운동화 추천 좀 해주세요 (2) 엔초
    300 04-27 74
    66897 [게임]  gta5 온라인 미션 질문있어요 (1) BlowUp
    200 04-27 78
     1  2  3  4  5  6  7  8  9  10  다음