linux 2.4.2-3 에서는 소켓 프로그램이 잘 작동을 합니다.
에러 없이 작동하는 걸 확인에 확인을 하고..
freeBSD에 올려보았습니다.
올렸더니..
/usr/include/sys/socket.h: 52 syntax error before `sa_family_t`
/usr/include/sys/socket.h: 52 warning: data definition has no type or storage class
.
.
.
.
.
.
/usr/include/arpa/inet.h: 91:warning: parameter has incomplete type
/usr/include/arpa/inet.h: 94:warning: parameter has incomplete type
.
이렇게 <sys/socket.h> 와 <arpa/inet.h>만 에러가 발생을 합니다.
대체 무엇이 문제 인지요?
sys/socket.h와 arpa/inet.h 를 주석처리하면 문제 없이 컴파일이 됩니다.
요사이 네트워크 프로그램에 관심이 생겨서 실습을 해보는데 잘 안되네요.
네트워크 프로그래밍이라 봤자....
소켓 생성하고, 문자 서로 주고 받을 수 있게 하는 거 뿐이 없습니다.
이거 어떻게 하면 해결이 될까요??
답변 부탁드리겠습니다.
좋은 하루되세요. !!
FreeBSD 에서 sa_family_t 에러는 리눅스 헤더 정의에 의존한 코드가 BSD 헤더와 맞지 않기 때문입니다. sys/socket.h 를 포함하기 전에 필요한 헤더 순서를 맞추거나, 이식성 있는 헤더 조합으로 바꾸세요. 타입 정의는 플랫폼마다 다르니 조건부 컴파일을 권합니다.