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
[11086] Re:[질문] 소켓 API 뺑뺑이의 성능..
박세호 [oxengs] 1123 읽음    2001-09-14 09:50
박정만 님이 쓰신 글 :
: 여러 분들의 답변들을 보고, 소켓 컴포넌트의 성능이 좋지 않다는 것을 알았습니다.
: IOCP인가..(가물~)가 가장 좋다고요..
:
: 그런데, 소켓 컴포넌트가 아닌 API를 쓸때, 쓰레드를 안쓰고 최대 접속수만큼 루프를 돌려서 순차적으로 클라이언트를 처리하는 방법은 어떠한가요?
:
: 그러니깐..
:
: for(i = 0; i < MAX_CLIENT_NUMBER; i++)
: {
:       i번째 클라이언트 처리
: }
:
: 이런 방식으로 하면 성능이 떨어질까요? 대개 4000개 이상을 처리할때는 무리가 있나요?

무리가 있다고 봅니다..필요없이 돌아야하니까요..
차라리 그러실려면 TCP/IP를 사용하실거면 Socket에 대한 Packet을 일반적으로
정하게 되죠.. 그럼 그 Packet Struct안에 Client에 대한 정보를 저장하는
부분을 추가하여 그정보를 가지고 바로 클라이언트를 처리하는게
불필요한 동작을 줄일수 있는 방법이겠죠..
ex)
   typedef struct {
       char STX;
       .
       .
       char ClientInfo[4];
       .
       char ETX;
   } PACKET, *PPACKET;

PPACKET pPacket = (PPACKET)Socket Receive Data;
char szTemp[5];
memset(szTemp, 0x00, 5);
memcpy(szTemp, pPacket->ClientInfo, sizeof(pPacket->ClientInfo));
int i_ClientNo = atoi(szTemp);  <--- 해당 Client번호
i_Client번쨰.. 클라이언트처리...



+ -

관련 글 리스트
11081 [질문] 소켓 API 뺑뺑이의 성능.. 박정만 868 2001/09/14
11086     Re:[질문] 소켓 API 뺑뺑이의 성능.. 박세호 1123 2001/09/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.