2012-07-23 4 views
0

저는 비교적 프로그래밍이 쉽지만 유용한 튜토리얼을 읽었습니다. 이 질문이 있습니다 :여러 클라이언트가있는 단일 서버

여러 클라이언트를 처리하는 가장 좋은 방법은 무엇입니까?

몇 가지 해결책이 있지만 그 중 일부가 내 응용 프로그램에 너무 복잡한 지 여부는 알 수 없습니다. 나는 마이크로 컨트롤러에 C 코드 (라이브러리가 이미 있기 때문에)를 사용해야하고 일부 센서 (각 센서의 온도와 습도)에 의해 수신 된 일부 데이터를 주기적으로 모니터하기 위해 웹 서버가 필요합니다. 클라이언트에게 데이터를 보내고 싶을 수도 있습니다. 이 코드를 읽는 데 도움이되는 샘플 코드와 링크가 도움이 될 것입니다. 감사합니다.

+0

참조 : http://stackoverflow.com/questions/5290860/trying-to-implement-concurrent-tcp-server-and-client-in-c – ninjalj

답변

0

웹 서버가 Microsoft IIS 인 경우 ISAPI/CGI/FastCGI를 사용할 수 있습니다. 기본적으로 각 사용자 요청에 대해 호출되는 함수를 포함하는 DLL (네이티브 코드, 예 : C)을 작성하고 출력을 생성해야합니다. 저는 이것이 당신이 언급 한 것처럼 마이크로 컨트롤러와 센서 용 라이브러리가 C 언어로 있기 때문에 이것이 가장 적합한 방법이라고 생각합니다.

그리고 충돌을 막기 위해 IIS는 프로세스 격리를 사용합니다. (정확히 말하면 기억합니다.) 즉, DLL은 스레드가 아닌 각 요청마다 다른 프로세스의 컨텍스트에서 호출됩니다. 이것은 성능/자원 관리면에서 그리 좋지 않을 수 있습니다. 예를 들어, 라이브러리를 HW에 한 번만 연결하려는 경우 (초기화 중). 별도의 프로세스가 아닌 스레드를 생성하는 메커니즘이 제공되는지 확실하지 않으므로 pls는 설명서를 확인합니다. 그렇지 않으면 다른 DLL을 만들어 프로세스 간 통신 기술 (예 : 파이프)을 통해 연결할 수 있지만 이것은 당연한 추가 작업입니다.

희망이 도움이됩니다.

관련 문제