send(), recv() 함수에서 구조체 전달....

redrocki의 이미지

안녕하세요

유닉스 소켓으로 통신하는 프로그램을 하나 만들고 있습니다.

그런데 구조체형 데이터를 상대에게 넘길수가 없나요?

  struct _student {
                      int id;
                      char name[20];
                     }Student;
               Student *a;
               a = (Student *)malloc(sizeof(Student));
                    .
                    .

       클라이언트쪽 
             send (servfd, &a, sizeof(a), 0);

        서버쪽
              recv (clientfd, &kk, sizeof(kk),0);

          

                         

보내는 클라이언트는 값을 받아서 서버로 주는데..서버에서 엉뚱한 값을 받고 있네요.... 가르쳐주세요....구조체 전달요~~

pynoos의 이미지

send (servfd, &a, sizeof(a), 0);

a 가 포인터 이므로 & 를 빼시고, sizeof 도 sizeof(*a) 로 바꾸셔야합니다.