예제에서는
printf("server: got connection from %s\n", inet_ntoa(their_addr.sin_addr));
위와 같이 프린트는 되는데 이것을 변수에 넣으려고 하면 않되네요.
문자열 넣는 코드를 안 보여주셔서 넣어지지가 않는다는 것이
어떤 것을 말씀하시는지 모르겠지만,
이전에 할당한 값이 바뀌는 증상이라면,
char *client_addr = inet_ntoa(their_addr.sin_addr);
로 포인터로 받지 마시고,
char client_addr[256];
배열에 strcpy, strncpy, snprintf 등을 이용해서 문자열을 복사하시던가
strdup 등을 이용해서 복사한 문자열에 대한 포인터를 가지고 계시면 될 듯 합니다.
Re: 소켓 프로그램에서 .. 클라이언트 정보..
문자열 넣는 코드를 안 보여주셔서 넣어지지가 않는다는 것이
어떤 것을 말씀하시는지 모르겠지만,
이전에 할당한 값이 바뀌는 증상이라면,
char *client_addr = inet_ntoa(their_addr.sin_addr);
로 포인터로 받지 마시고,
char client_addr[256];
배열에 strcpy, strncpy, snprintf 등을 이용해서 문자열을 복사하시던가
strdup 등을 이용해서 복사한 문자열에 대한 포인터를 가지고 계시면 될 듯 합니다.
댓글 달기