2010-03-25 3 views
3

이것이 내 첫 번째 질문이므로 양식이 잘못되어 미안합니다!스 리프트 클라이언트 - 서버 복수 역할

저는 중고품 서버 (파이썬)와 클라이언트 (C++)를 만들고 있습니다. 그러나 양쪽 방향으로 메시지를 교환해야합니다. 클라이언트는 등록 (호출 서버의 기능 및 대기)해야하며 서버는 N (N-> 100k) 들어오는 연결 (클라이언트)에 대해 동일한 포트에서 수신 대기해야합니다. 일부 조건이 충족되면 서버는 각 클라이언트에서 함수를 호출하고 결과를 수집하고 해석해야합니다.

나는 약간 혼란스럽고, 첫 번째 질문은 "이것이 대검에서 할 수 있습니까?" 두 번째 질문은 양방향 통신을 허용하는 메커니즘과 관련이 있습니다. 나는 두 가지 서비스가 필요하다고 생각합니다. 하나는 서버의 다른 기능을 가진 클라이언트입니다. 하지만 코드를 호출하는 것과 혼동합니다. 내가 이해하는 한 가지 방법으로 통신 (서버에서 함수를 호출),하지만 문제가 클라이언트 쪽에서 함수를 호출과 함께.

제안 사항 ???

감사합니다.

+0

왜 당신은 스 리프트를 사용하고 있습니까? – compie

+0

제안되었으며 클라이언트와 서버에 다른 언어 지원을 사용해야합니다. – dexter

답변

1

클라이언트 측에 boost::asio을 사용하는 것을 고려해보십시오. 그러나 C++ 수준에 따라 코드가 너무 복잡해 보일 수 있습니다.

간단한 예를 찾고 있다면, 한 번 봐 걸릴 : http://www.linuxhowtos.org/C_C++/socket.htm

그것은 서버 측과 클라이언트 측 코드를 모두 포함합니다. 양측은 소켓을 만들고 양방향 통신은 각 측면에서 소켓에 데이터를 게시합니다. 서버 측은 일반적으로 다중 스레드 (연결 당 하나의 스레드)입니다. 클라이언트 측은 들어오는 정보를 얻기 위해 소켓을 쿼리하고, 계산을 수행하고, 소켓에 결과를 다시 게시하는 대신 단일 스레드 루프로 구현 될 수 있습니다.

+0

Thrift는 그것을 수행하는 한 가지 방법으로 제안되었습니다 ... 요점은 다른 pl (파이썬 및 C++), 에 있어야하며 이것이 Thrift에서 수행 될 수 있는지 궁금합니다. 또한 많은 수의 클라이언트가 필요하기 때문에 서버 측에서 멀티 스레딩을 피해야합니다. – dexter