OMOSSocket 클래스

OMOSSocket 클래스는 Rational® Rhapsody®와 인스트루먼테이션된 애플리케이션 사이에서 데이터를 전달하기 위해 통과하는 소켓을 나타냅니다.

OMOSSocket은 일반적으로 애니메이션에 사용되지만 호스트 이름과 포트 번호를 제공하기만 하면 다른 연결에도 사용할 수 있습니다. OMOSSocket은 연결의 클라이언트 측을 나타내고 네트워크의 어느 지점에 연결을 수신하는 서버가 있는 것으로 가정합니다. 인스트루먼테이션되지 않은 구성에 소켓 구현을 제공하도록 OMOSSocket 클래스의 정의를 수정하여 관련 위치에서 _OMINSTRUMENT 매크로 정의를 제거할 수 있습니다. 또한 추적 및 애니메이션에 대한 정의와 유사하도록 MakeFileContent 특성 내의 SOCK_LIB 매크로 정의를 수정해야 할 수 있습니다.

애니메이션 세션이 정지된 것으로 나타나는 경우 이는 Rational Rhapsody와 애플리케이션 간에 전달되는 많은 양의 메시지로 인해 소켓의 내부 버퍼가 채워지기 때문일 수 있습니다. 이로 인해 Rational Rhapsody와 애플리케이션 간의 통신에 심각한 지연이 발생할 수 있습니다. 이 문제를 해결하려면 소켓 내부 버퍼 크기를 늘립니다. 소켓 내부 버퍼의 기본 크기는 8K입니다. 예를 들어 Windows NT 구현 시 NTSocketCreate() 함수에 다음 코드를 추가할 수 있습니다.

int NTSocket::Create(
   const char* SocketAddress /*= NULL*/, 
   unsigned int nSocketPort /*= 0*/)
   {
      ... 
      if ((theSock = socket(AF_INET, SOCK_STREAM, proto))
       == INVALID_SOCKET) 
      {
         NOTIFY_TO_ERROR("Could not create socket\n");
         theSock = 0;
         return 0;
      } 
      int internalBufferSizes = 64 * 1024; // 64k
      setsockopt(theSock, SOL_SOCKET, SO_RCVBUF,
         (char*) &internalBufferSizes, sizeof(int));
      setsockopt(theSock, SOL_SOCKET, SO_SNDBUF,
         (char*) &internalBufferSizes, sizeof(int));
      ... 
   }
주: 이 솔루션은 Windows NT 시스템에 대해서만 확인되었습니다.
생성 요약
~OMOSSocket
OMOSSocket 오브젝트를 영구 삭제합니다.
메소드 요약
Close
소켓을 닫습니다.
Create
새 소켓을 작성합니다.
Receive
소켓을 통해 데이터를 수신합니다.
Send
소켓을 통해 데이터를 전송합니다.

피드백