|
앙와위(supine) 심장수축기(systolic) 이완기(diastolic)
초음파를 이용하여 심장의 형태와 움직임, 심장내 혈액의 흐름 등을 관찰하는 검사이다. 음파보다도 높은 음역의 초음파를 발생시켜 심장에 반사되어 돌아오는 음파를 이용하여 얻은 영상으로 검사한다. 심근경색증과 허혈성 심질환, 선천성 심질환, 류머티즘성 판막질환, 심내막염 등 심장과 관련된 구조적, 기능적 이상을 확인할 수 있다.
WinInet API
CInternetSession(LPCTSTR pstrAgent = NULL, DWORD dwContext = 1, DWORD dwAccessType = RNET_OPEN_TYPE_PRECONFIG, LPCTSTR pstrProxyName = NULL, LPCTSTR pstrProxyBypass = NULL, DWORD dwFlags = 0);
첫 번째 인자는 클라이언트 쪽 소프트웨어 이름을 가리키는 포인터이다. 디폴트값 NULL은 생성자가 AfxGetAppName() 호출을 통해 응용프로그램의 이름을 찾게 할 것이다. dwAccessType 인자는 WinInet에게 인터넷을 어떻게 연결할 계획인지 알려준다. 디폴트 값인 INTER_OPEN_TYPE_PRECONFIG는 레지스트리에서 인터넷 연결에 관하여 이전에 입력된 정보를 찾는다. 인트라넷을 사용하고 있거나 컴퓨터가 인터넷에 직접 연결되어 있다면 INTERNET_OPEN_TYPE_DIRECT를 지정할 수 있다. 방화벽을 통한 연결은 GATEWAY_INTERNET_ACCESS, 프록시를 통해 인터넷에 요청을 전달하려고 하려면 INTERNET_OPEN_TYPE_PROXY를 지정한다. 이것을 지정하지 않으면 pstrProxyName과 pstrProxyBypass 인자를 NULL로 지정할 수 있다. 그리고 dwFlags 인자를 사용하여 다른 방법으로 연결에 영항을 줄 수 있다. 비동기 동작을 지원하는 INTERNET_FLAG_ASYNC 플래그와 세션을 통해 기존 연결을 재사용하려는 INTER_FLAG_EXITING_CONNECT 플래그가 OR 연산자를 사용하여 결합된다.
dwContext라는 인자가 있는데 인터넷에 있는 다른 컴퓨터와 대화하는 것은 오랜 시간이 걸릴 수 있다. 일부 프로토콜 등은 많은 오버헤드를 발생시키고, 인터넷 응용 프로그램의 사용자들은 종종 느린 링크를 통해서 연결된다. 따라서 윈도우 인터넷 API는 언제, 어떤 것이 진행되었는지 응용프로그램이 알 수 있게 하는 콜백을 제공한다. dwContext 인자는 단순히 응용 프로그램이 실행하고 있는 각 동작들을 구분할 수 있게 해준다. MFC는 콜백 함수처럼 복잡한 것들에 대해 염려하지 않아도 되게 해준다. CInternetSession으로부터 클래스를 유도하고 OnStatusCallback() 함수를 오버라이드할 수 있다.
첫 번째 인자는 연결하고자 하는 서버의 이름이고 두 번째 인자와 세 번째 인자는 연결에 사용될 사용자 이름과 암호를 나타낸다. 디폴트 값인 NULL을 전달하면 익명(anonynous)으로 접속요청을 하게 된다. nPort 인자는 포트 번호를 나타내는데 디폴트 값인 INTERNET_INVALID_PORT_NUMBER을 사용하면 이 프로토콜의 디폴트 TCP/IP 포트 번호(HTTP:80, FTP:21, Gopher:70, HTTPS:443)를 사용한다. 이를 이용한 FTP 서버 접속은 리스트 3과 같다.
리스트 3 : FTP 서버 접속 CInternetSession m_Session; CFtpConnection *m_pConnection = NULL; m_pConnection->GetFile("RemoteFile", "localFile", FALSE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE);
네 번째 인자(DWORD dwAttributes)는 파일 복사 후 로컬 컴퓨터에 생성되는 파일의 속성을 나타낸다. 읽기 전용은 FILE_ATTRIBUTE_READONLY로 지정할 수 있다. 다섯 번째 인자(DWORD dwFlags)는 원시 이진 파일들을 처리할 수 없는 연결을 통해 올바로 데이터를 전달하기 위해 FTP 프로토콜에 사용되는 의미를 바꾼다. CFtpFileFind란 클래스가 있는데 FTP 서버를 검색하는 기능을 수행한다. 이 클래스는 CFileFind 클래스에서 파생되었다. CFtpFileFind 클래스는 두 개의 인자가 있는데 첫 번째 인자는 검색할 서버를 위한 CFtpConnectiondmf 가리키는 포인터이고 두 번째 인자는 dwContext 값을 나타낸다.
CFtpFileFind *m_pFileFind = NULL; FTP 서버로 연결이 되면 CFtpFileFind 클래스를 이용하여 지정된 경로의 파일을 계속 찾는 구문이다. HTTP 서버 즉, 일반적으로 말하는 웹 서버에 접속하기 위해서 MFC 계층에서 CFtpConnection과 비슷한 위치를 차지하는 CHttpConnection를 사용해 연결할 수 있다. CInternetSession의 GetHtpConnection() 멤버를 사용하여 CHttpConnection을 열 수 있다.
CHttpConnection* GetHttpConnection( LPCTSTR pstrServer, INTERNET_PORT nPort = NTERNET_INVALID_PORT_NUMBER, LPCTSTR pstrUserName = NULL, LPCTSTR pstrPassword = NULL );
각 인자는 GetFtpConnection()과 거의 동일하다. 웹서버에 접속하는 코드는 다음과 같다.
CInternetSession m_Session;
CHttpFile이라는 것이 있는데 CInternetFile로부터 유도되었고 CInternetFile은 CStdioFile로부터 유도되었다. CHttpFile의 특징은 자신만의 파일 데이터 버퍼링을 수행한다. SetReadBufferSize()를 호출하여 버퍼 크기를 설정할 수 있고, 버퍼를 설정하지 않고서 ReadString()을 사용하면 자동으로 버퍼가 설정된다. 위 코드 중 서버에게 요청하는 OpenRequest()의 첫 번째 인자는 CHttpConnection 내부의 enum에서 정의된 기호이다. 이 인자는 요청에서 사용하고자 하는 메소드를 지정한다. HTTP_VERB_GET이라는 메소드는 서버에 있는 개체의 전체 내용을 요청하는데 쓰인다. 그 외 특정 개체와 연결된 개체를 전달하고자 할 때는 HTTP_VERB_POST 인자가 쓰이고 마지막 인자인 POST 대신 HEAD, PUT, LINK, DELETE, UNLINK 등이 사용된다. 요청은 CHttpFile::SendRequest() 호출과 함께 전달된다. 요청을 전달하기 전에 헤더를 추가하고 싶으면 CHttpFile::AddHeaders()를 호출할 수 있다. 서버가 요청에 대한 개체를 갖고 있지만 클라이언트의 Accept: 헤더에서 지정된 형식 요청을 충족시킬 수 없으면 일반 "404 Not Found"(HTTP_STATUS_NOT_FUOND: 404)" 에러와 "HTTP_STATUS_NONE_ACCEPTABLE: 406" 에러를 반환할 것이다. 요청이 전달되고 반응이 성공적으로 수신되었으면 SendRequest()가 TRUE를 반환한다. 그렇지 않으면 예외가 발생할 것이다. 이것은 내부 서버 에러가 있다는 것을 의미한다. CHttpFile::QueryInfoStatusCode()를 호출함으로써 CHttpFile 개체로 들어온 정보로부터 반환 코드를 커낼 수 있다.
m_pFile->SendRequest();
m_dwStatusCode는 요청 결과에 반영하는 정수를 갖고 있다. 예를 들어 200은 HTTP_STATUS_OK를 나타내며 요청이 게이트웨이로 갔지만 게이트웨이와 서버와의 통신이 타임아웃일 경우는 504(HTTP_STATUS_GATEWAY_TIMEOUT)를 나타낸다
[일반 명령어]
calc (계산기)
[MSC 명령어] certmgr.msc : 인증서 관리
|
카테고리
메뉴릿
이글루링크
이글루 파인더
| |||||||||||