C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15808] Re:소켓의 대한 몇가지 질문.
Dante H [h64d5791] 1039 읽음    2002-02-26 11:09
안녕하세요 단테입니다.

일단 간단히 질문에 답변을 드리자면 다음과 같습니다.

AnsiString의 최대 용량은 저도 잘 모르겠고 (테스트 해본적도 없습니다. ㅜ.ㅜ)

가장 간단한게 받은것을 파일로 저장하는 방법은 ReceiveText로 받은 AnsiString을

FILE 형에 넣어서 직접 파일을 만드는것입니다.

다른 방법으로는 조금 꽁수의 느낌이 들지만 TStringList를 이용해서 SaveToFile 메소드를

사용해서 저장하는 방식입니다. (왠만하면 위의 것을 추천드리고 싶군요)

그리고 저도 처음 TWinSocketStream 클래스를 들어봤는데, 여하튼 헬프를 해석해 보니 간단히

구현된 블로킹 소켓이더군요..

일단 간단히 설명을 드리자면 Winsocket에서는 몇가지 방식이 있는데 그 중에 있는 방식이

블러킹 소켓입니다.

아래가 현재 윈도우에서 존재하는 소켓의 방식입니다.

1. Blocking Mode

하나의 소켓 IO를 완전히 이루어질때까지 블로킹 즉 다른 작업을 하지 못하게 됩니다. 작업에 대한 핸들링은 편리하지만, 한 작업마다 다른 스레드를 만들어야 하는 단점이 있습니다.

2. Non-Blocking Mode

블로킹 모드와 달리 작업이 완전히 끝나기를 기다리지 않고 다음 문장을 실행합니다. 그러나 단점은 작업이 끝났는지 안끝났는지를 수동으로 체크를 해 주어야 합니다. 그러므로 작업 체크를 위한 불필요한 오버헤드가 있습니다.

3. Async(비동기) Mode

유닉스 계열 OS에는 없는 방식으로 윈도우 메시지를 기반으로 소켓 작업을 처리합니다. 이 방식은 윈도우 환경에서 가장 퍼모먼스가 좋다고 알려져 있습니다.

4. Overlapped IO

Win32에서 제공하는 Overlapped IO를 소켓에도 적용하는것으로 현 윈도우 환경에서 최상의 성능을 보여줍니다. 하지만 이용하기 까다롭고 자료가 찾기 어렵습니다. 간단히 설명을 드리자면 해당 IO를 시작하고 바로 IO가 끝나지 않으면 OS가 알아서 나머지 작업을 처리해 주고 프로그램에서는 그 IO의 완료를 OS에게 직접 통보받는 방식입니다. 이런 Overlapped IO를 쓰는 방법은 3가지가 있는데
IOCP를 이용하는 방법, CallBack 함수를 이용하는 방법, Overlapped 구조체의 hEvent를 쓰는 방법이 있습니다. IOCP의 경우는 Windows NT 계열에서만 사용이 가능한 서버용 구조고, 나머지의 경우는 아무곳에서나 사용할 수 있습니다.

대략 설명은 된것 같군요..

그럼 도움이 되셨길..


모라 님이 쓰신 글 :
: 1. ftp에서 LIST 한 내용물을 제 port로 받는걸 성공했습니다.
:
:   그런데...TCustomWinSocket->ReceiveText()을 이용해서 받아서,
:
:   그리고 ansistring값으로 저장되는데...ansistring으로 지정해서 받을 수 있는 최대 용량이
:
:    있지않은가요?
:
:   아무튼 receivetext말고 그냥 하나의 화일로서 받고 싶은데 방법이 없을까요?
:
: 2. 논 브로킹방식이 아니면 TWinSocketStream 클레스를 이용하라고 하던데
:
:    TWinSocketStream는 어떤게 틀린가요?
:
:    헬프를 봐도 이해가 안되더군요...
:
:    좋은 답변 바랍니다. :-)

+ -

관련 글 리스트
15806 소켓의 대한 몇가지 질문. 모라 858 2002/02/26
15808     Re:소켓의 대한 몇가지 질문. Dante H 1039 2002/02/26
15828         캬캬 동훈님아 몇가지 물어볼게여... 에보니.^ㅅ^ 855 2002/02/26
15830             Re:캬캬 동훈님아 몇가지 물어볼게여... Dante H 908 2002/02/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.