Projects/CoVNC
Swap16IfLE() 매크로
>동네청년<
2007. 1. 24. 22:23
참고 바람 ..
#define Swap16IfLE(s) \
((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
#define Swap32IfLE(l) \
((CARD32) ((((l) & 0xff000000) >> 24) | \
(((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \
(((l) & 0x000000ff) << 24)))
jdlee12 작성:
> big,little endian 은 워드를 저장할때 바이트 앞뒤 순서가 바뀌는 거죠 ..
>
> 다른 OS 와 endian 방식이 다르면
> 매크로로 만들면 1 줄정도 이내로 swap macro 를 만들 수 있읍니다.
>
> "조우현" 작성:
>
> > 안녕하세요.
> > 전 네트워크프로그래밍을 하는데 도움이 필요해서 글을 올립니다.
> > MFC로 만들고 잇는데 다른 시스템의 서버에 client로서 연결하고
> > 또다른 MFC로 만든 클라이언트 프로그램에 대해서는 server로
> > 동작하게하는 말하자만 클라이언트와 서버의 기능을 둘다 가진
> > 프로그램이지요 . 근데 문제가 있습니다. 이 프로그램이 클라이언트로서 서버에
> > 연결할려는 시스템은 windows가 아닌 다른 OS이기때문인데 책을 보면 mfc가 아닌
> > 프로그램에서는 CSocket클래스를 사용할수 없고 big-endian에 맞추어서 데이타를
> > 보내야 한다고 합니다. 정말로 이런 방법 밖에 없나요?
> > 음..제 질문이 너무 복잡한가요?
> > 도움 부탁합니다.
#define Swap16IfLE(s) \
((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
#define Swap32IfLE(l) \
((CARD32) ((((l) & 0xff000000) >> 24) | \
(((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \
(((l) & 0x000000ff) << 24)))
jdlee12 작성:
> big,little endian 은 워드를 저장할때 바이트 앞뒤 순서가 바뀌는 거죠 ..
>
> 다른 OS 와 endian 방식이 다르면
> 매크로로 만들면 1 줄정도 이내로 swap macro 를 만들 수 있읍니다.
>
> "조우현" 작성:
>
> > 안녕하세요.
> > 전 네트워크프로그래밍을 하는데 도움이 필요해서 글을 올립니다.
> > MFC로 만들고 잇는데 다른 시스템의 서버에 client로서 연결하고
> > 또다른 MFC로 만든 클라이언트 프로그램에 대해서는 server로
> > 동작하게하는 말하자만 클라이언트와 서버의 기능을 둘다 가진
> > 프로그램이지요 . 근데 문제가 있습니다. 이 프로그램이 클라이언트로서 서버에
> > 연결할려는 시스템은 windows가 아닌 다른 OS이기때문인데 책을 보면 mfc가 아닌
> > 프로그램에서는 CSocket클래스를 사용할수 없고 big-endian에 맞추어서 데이타를
> > 보내야 한다고 합니다. 정말로 이런 방법 밖에 없나요?
> > 음..제 질문이 너무 복잡한가요?
> > 도움 부탁합니다.