2012-11-07 2 views
0

windsock을 사용하여 데이터를 전송하기위한 클라이언트 서버 프로그램이 있지만 클라이언트 채널 서버와 같은 것이 필요합니다. 채널이 임상 시험소에서 요청을 검색하거나 서버가이를 처리합니다. 시간 채널이 사용 중이면 해당 요청을 대기열에 저장합니다. 채널을 별도의 응용 프로그램으로 원합니다. 나는에 대해 조금 생각을 가지고 같은 :클라이언트 서버 응용 프로그램의 채널

class ch { 

void getdata{ 
//to recieve data 
} 

void putdata{ 
//to send data 
} 

void queue{ 
//to store if channel is busy now 
} 

private: 
void dataaddress; 
double datasize; 

} 

내가 다른 응용 프로그램 또는 DLL 파일로 만드는 생각하지만 난이 내가 소켓을 할 경우 DLL 파일과 다른 방법으로 할 수 있습니다 단서 없다 클라이언트 또는 서버와 동일합니다. 그래서 더 좋은 방법이 있을까요 아니면 어딘가에서 시작할까요? 나는 부스트에 대해 알고 : asio 및 기타 라이브러리지만, C + +의 표준 라이브러리에서 뭔가가 필요합니다. "채널"프로그램은 서버와 클라이언트 사이의 프록시 역할을

 
+--------+  +-----------+  +--------+ 
| Client | <---> | "Channel" | <---> | Server | 
+--------+  +-----------+  +--------+ 

: 나는 당신을 이해한다면 다음과 같이

+0

dll은 AS @ JoachimPileborg가 설명하는 응용 프로그램에서 호출되어야한다고 설명했습니다. 클라이언트와 서버간에 트래픽을 감지하는 채널로 실행되는 별도의 앱이 필요합니다. – fayyazkl

+0

먼저이 "채널"이 에 위치한? 별도의 컴퓨터에 설치하거나 클라이언트 프로그램과 동일한 컴퓨터에서 작동하게할까요? – codewarrior

답변

2

, 당신은 연결된 세 개의 프로그램을 원한다.

이 기능을 사용하려면 서버 클라이언트로 작동 할 "채널"프로그램을 만들어야합니다. 클라이언트 프로그램이 실제 서버가 아닌 클라이언트 프로그램에 연결되는 방식으로 서버 역할을합니다. "채널"프로그램이 새 클라이언트 연결을 수신하면 실제 서버에 연결하여 클라이언트 역할을합니다.

소켓 쌍 (클라이언트 및 서버 연결)이 있으면 한 소켓에서 입력을받을 때 처리하고 처리 된 데이터를 다른 소켓으로 보내도록 추적해야합니다. 따라서 클라이언트가 데이터를 보내는 경우 "채널"프로그램에서 수신하고 필요한 처리를 수행 한 다음 실제 서버로 보냅니다. 그리고 그 반대의 경우에도 마찬가지입니다.

+0

시작해 주셔서 감사합니다 ... 클라이언트와 서버 모두로 활동하는 채널. – networks