2014-01-07 2 views
0

나는 간단한 서버 실행이 :ZeroMQ를 단일 포트에서 동시 멀티 스레드 모드로 사용할 수 있습니까?

 using (var context = ZmqContext.Create()) 
     using (var socket = context.CreateSocket(SocketType.REP)) { 

      Console.WriteLine("Starting on {0}", tcpAddress); 

      socket.Bind(tcpAddress); 

      while (true) { 
       var replyMessage = socket.Receive((Encoding.Unicode)); 
       Console.WriteLine("Received: [{0}]", replyMessage); 

       // Do some stuff 

       socket.Send(string.Format("Received [{0}]", replyMessage), Encoding.Unicode);        
      }  
     } 

을 내가 정보를 요청하는 클라이언트를 사용하는 경우, 그것을 잘 반환하지만 여러 클라이언트가 서버를 공격 할 때, 요청이 대기하고 있으며, 서버를 기다리고 있습니다 한 번에 하나의 요청 만 처리 할 수 ​​있기 때문에 응답해야합니다.

이 ZeroMQ 서버가 여러 클라이언트 요청에 대해 tcpaddress를 수신 대기하고 동시에 처리 할 수있는 방법이 있습니까?

답변

1

zeromq guide의 예제를 기반으로 간단한 요청/응답 멀티 스레드 서버를 작성했습니다. 가이드에서

코드 : https://github.com/imatix/zguide/blob/master/examples/C%23/mtserver.cs

그러나,이 솔루션은 확장 성이 없습니다.

+0

감사합니다. Luke, 저는 SmartThreadPool을 사용하여 비슷한 것을했지만 궁극적으로 확장 성이있는 것이 있는지 궁금해했습니다. 해야한다면, 내가 제안한 것과 비슷한 내 자신을 굴릴 것이다. –

관련 문제