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
[12851] Re:컴퍼넌트 없이 소켓통신
패패루 [peperu] 1676 읽음    2001-11-20 01:45
일당백 님이 쓰신 글 :
: 컴퍼넌트 없이 소켓통신 해보신 고수님께 부탁드립니다.
: 클라이언트과 서버쪽 모두.. 괜찮으시면 소스를 주시면 아주 고맙겠습니다.
:

블러킹 소켓쪽은 복잡하지 않습니다.
소스도 많이 돌아다닐텐데요...
제가 가지고 있는건, 다른 분이 만든거라서 함부로 드릴 수는 없고..
WinSock관련 책자만 봐도 많이 나와있을겁니다.

문제는 Nonblocking 소켓인데... 이넘은 장난이 아님다..
직접 구현해봤는데, 테스트용은 간단하게 만들어져도
상용으로 쓸정도로 안정적으로 만들기 위해서는 엄청난 삽질이 요구됩니다.
특히 컴포넌트로 만드는건.. ㅠ ㅠ

아무튼, 블러킹소켓 클라이언트는

윈속 초기화
소켓 선언
소켓 생성
Hostresolving
connect
send
recv
...
disconnect 순서이고,

블러킹 서버소켓은 크게 두종류인데,
1. 루프돌리면서 select 함수 사용
2. 리스닝소켓에 대해서만 넌블러킹(Async) 소켓 사용, 메시지 핸들링
어쨌건, 블러킹소켓으로 서버를 만들려면
쓰레드는 필수입니다.

넌블러킹 서버소켓을 만들경우, 쓰레드 없이, 멀티소켓 서버 만드는것이
가능하지만
X나게 복잡하게됩니다.
빌더 컴포넌트로 제가 만든게 있긴 한데..
아직 넌블러킹만 지원하고 블러킹은 지원하지 않아서 올려드리기도 머하군요..
아무튼, 소켓을 하시는 분들이 보통 쉽게 가기 위해 컴포넌트로 처음 시작
하시는 경향이 있는데.. 전 반대합니다.
컴포넌트는 컴포넌트.. 상용서버등을 만들때는 컴포넌트의 사소한 부족함
때문에 못쓰게 되는 경우가 많습니다.
그렇다고 다른 컴포넌트를 쓰면, 완전히 다른 방식...
결국 Winsock을 잘 알구 있어야, 컴포넌트도 자유롭게 씁니다.
winsock 관련 서적 구입하셔서 공부하시는게 제일 빠를듯 하군요.

패패루였슴다.

+ -

관련 글 리스트
12850 컴퍼넌트 없이 소켓통신 일당백 990 2001/11/20
12851     Re:컴퍼넌트 없이 소켓통신 패패루 1676 2001/11/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.