저 하늘의 구름처럼~

닷넷기반소켓통신1 본문

DotNet

닷넷기반소켓통신1

강백호v 2008. 8. 14. 12:12

닷넷 환경에서 구조체를 이용한 소켓 통신을 하려면 두가지 방법이 있다.
1. 마샬링(Marshaling)을 이용한 구조체의 사용
2. 바이너리포매터를 사용하는 방법
닷넷 환경에서는 구조체를 이용한 소켓 통신 구현이 어렵다.
닷넷 환경와 이기종환경간의 통신에서는 데이터 타입변환을 신중히 생각해야한다.

- 관리 되는 메모리의 구조 및 관리되지 않는 메모리 구조의 차이점을 명확하게 이해하여야 한다.
struct BIND
{
    public char szID[16];
    public char szPWD[16];
}
 만약 다음과 같은 구조체를 선언한다고 하면, 수신하는 쪽에서는 16 + 16 byte를 받아야하지만, 실제로는 약 100 byte의 데이터를 수신하게 된다.
(닷넷 환경에서는 구조체가 관리되는 메모리 구조를 갖게 되기 때문이다.)

- 마샬링이란,간단히 호출측의 데이터를 전송할 수 있는 표준형식으로 변환하는 것을 의미할수 있다.

- parameter marshaling이란, 인자를 일정한 포멧으로 변환하는 것을 말한다.즉, 인자를 조율하고,정리하는 역할을 하는 것인데, 모든 컴퓨터 시스템에서 데이터 표현방법이 약간씩 다르기 때문에 필요로 한다. 쓰리티어 시스템의 경우 데이터베이스 서버, 어플리케이션 서버, 클라이언트가 일일이 다른 플랫폼으로 구현될 수도 있기 때문에 데이터의 일괄적인 표현 이 중요하다.