소켓 프로그래밍 중에서

익명 사용자의 이미지

클라이언트에서 서버에 데이타를 전송해서
서버에서 데이타를 처리하는 것을 만들고 있습니다.

클라이언트에서 데이타를 보낼때

typedef struct{
char Phone[16];
char PhoneId[10];
char ReceiveData[50];
}RDATA;

구조체 데이타를 보냅니다.

서버에서 이걸 잡아서 처리를 하면 데이타의 값이

다 넘어오는 것이 아니라 구조체의 첫번째의 값만 넘어 옵니다.

char rbuf[MAXLINE];

if(( size = read(client_fd, rbuf, MAXLINE)) > 0)
printf("Request service from client%s", rbuf);

이것이 결과를 확인하면
Request service from client01623451234

보낸데이타중 구조체의 폰번호만 들어옵니다.

클라이언트와 서버단중에서 어느 곳이 틀렸는지요..

도통 모르겠습니다.. ^^;;

익명 사용자의 이미지

안녕하세요...

여기에 있는 소스를 좀 보니깐.
보내는 부분은 struct 로 해서 보낼것 같은데...
받는 부분은 아래와 같이...
struct 전체를 받는게 아니라.
아래와 같이 스트링 하나만 받네요.

char rbuf[MAXLINE];

if(( size = read(client_fd, rbuf, MAXLINE)) > 0)
printf("Request service from client%s", rbuf);

이렇게 사용을 하면은 않되고.
받는 부분에서도 struct 로써 보내 온 데이타를 받아야 합니다.

_ 信

익명 사용자의 이미지

답변 감사합니다.

처음 만드는거라 제가 개념이 없어서..^^;; 문제가 발생했는데

read할때 데이타를 구조체에 넣으니까 바로 들어 가네요..

애꿎은 클라이언트 프로그램만 문제를 찾고, 서버단에서
받는 부분이 틀려서 데이타가 안들어 왔던 거였네요.