LOGIN • JOININ

RayYun님의 질문 메일 중...

webmaster 2015.12.18 20:49 조회 수 : 128

RayYun님이 저번에 질의하신 내용 중 작성하셨다는 소스 부분...


그 부분 보다 쉽게 작성할 수 있는 부분이 있습니다.


보내주신 작성하셨다는 소스에 다음과 같은 소스 부분이 있었습니다.



printf("[CGCII Network TCP Auther Server]\n");

// 1) Acceptor를 생성한다.
	acceptServer = NEW<CGNet::CAcceptor<CServerSocket>>(_TEXT("Server Acceptor"));
	acceptClient = NEW<CGNet::CAcceptor<CClientSocket>>(_TEXT("Client Acceptor"));

	SOCKADDR_IN Server_Sock, Client_Sock;
		
	memset(&Server_Sock, 0, sizeof(Server_Sock));
	memset(&Client_Sock, 0, sizeof(Client_Sock));
	Server_Sock.sin_family = AF_INET;
	Client_Sock.sin_family = AF_INET;
	Server_Sock.sin_addr.s_addr = htons(INADDR_ANY);
	Client_Sock.sin_addr.s_addr = htons(INADDR_ANY);
	Server_Sock.sin_port = htons(20000);
	Client_Sock.sin_port = htons(20001);

// 2) 20000번 포트로 Listen을 시작한다.
	acceptServer->Start(Server_Sock, 0, 0);
	acceptClient->Start(Client_Sock, 0, 0);


근데 이부분에서 Acceptor를 2개 만들어 각각 20000번과 20001번 포트에 List을 하시려면 굳이 저렇게 길게 쓰시지 않으셔도 됩니다.



printf("[CGCII Network TCP Auther Server]\n");

// 1) Acceptor를 생성한다.
	acceptServer = NEW<CGNet::CAcceptor<CServerSocket>>(_TEXT("Server Acceptor"));
	acceptClient = NEW<CGNet::CAcceptor<CClientSocket>>(_TEXT("Client Acceptor"));

// 2) 20000번 포트로 Listen을 시작한다.
	acceptServer->Start(20000);
	acceptClient->Start(20001);


으로만 하시면 됩니다.


즉 Start할때 Port 번호만 지정해 주시면 됩니다.

SOCKADDR_IN의 내용을 직접 채워서 Listen을 하는 경우는 일반적으로 여러 개의 랜카드를 가졌거나 IP를 가진 경우 특정한 IP에만 Listen을 하고자 할 경우에만 사용해 주시면 됩니다. IP를 'INADDR_ANY'를 설정해서 모든 랜카드에 Listen을 할 경우 굳이 SOCKADDR_IN구조체를 선언해서 직접 작성하실 필요 없이 포트번호만 써주시면 됩니다.


그리고 MSG_CONTEXT를 사용해서 시작하실 수도 있는데 그건 좀 자세한 설명이 필요해서 추후에 좀더 작성해서 글을 올리도록 하겠습니다.


하여튼 Log관련 오류 패치 빨리 올리도록 하겠씁니다. 

감사합니다.



번호 제목 글쓴이 날짜 조회 수
공지 Q&A 무엇이든 물어보세요. webmaster 2015.04.25 426
17 안녕하세요 질문이 있습니다. [1] secret 주니와니 2016.03.07 3
16 CGDsList 컨테이너 사용방법에 대한문의 드립니다. [5] RayYun 2016.01.28 316
15 다중서버 소켓 접속 정보의 로드벨런싱 처리에 대해 문의드립니다. [1] RayYun 2016.01.27 340
14 DB 프로시져 호출시 파라메터 문제2 [1] RayYun 2016.01.25 213
13 DB쿼리 클래스 사용 문의 드립니다. [12] secret RayYun 2016.01.21 10
12 소켓 클래스 내부의 특정 함수를 매 초 마다 이벤트로 실행하는 방법에 대한 문의입니다. [1] RayYun 2016.01.14 235
11 CGCII 를 사용하여 서버간 연결 방법에 대해 문의드립니다. [1] file RayYun 2016.01.12 215
10 CGCII Network TCPEchoClient에 대해서 [1] file 유저 2015.12.26 219
9 초보 프로그래머의 질문 [8] zzanggu 2015.12.24 1087
8 CGCII에서 빨리 보강되었으면 하는 점 건의 [4] 플머 2015.12.23 340
» RayYun님의 질문 메일 중... webmaster 2015.12.18 128
6 Log 시스템 관련 질문 드립니다. [1] RayYun 2015.12.18 116
5 왜 디버그 모드에서만 런타임 오류가 발생할까요? [1] file 쿠우 2015.10.26 299
4 개인적인 질문입니다. [1] bjh 2015.09.17 222
3 벤치마크요청! Linux vs Windows 어느 쪽이 빠른가요? [4] 궁금한이 2015.09.02 698
2 TLS 관련 질문이요~ ㅋㅋ [2] 황대장 2015.06.23 340
1 패킷 관련 기능 문의입니다. [4] 은혜아빠 2015.06.10 2303