2013-06-10 2 views
1

온라인 예제는 대부분 멀티 스레드 tcp 서버의 예이며, 서버는 클라이언트로부터의 여러 수신 연결을 수신합니다.tcp를 여러 클라이언트에 연결하는 서비스

내가 찾고있는 것은 "서버"가 연결을 시작하는 것입니다. 100 개의 장치 (모든 다른 IP 주소는 물론)가 있으면 내 서버는 각 장치에 100 개의 개별 연결을 만들고 장치에서 데이터를 수신해야합니다.

는 다음

  • 가 많은 TCP를 수립 이행 것이라고, 나는 장치

    _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
    _socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true); 
    _socket.SendTimeout = 2000; 
    _socket.ReceiveTimeout = 2000; 
    _socket.Connect(new IPEndPoint(IPAddress, TCPPort)); 
    

    내 연결을 만들 것입니다하지만 난 거기에 모든 구성 요소가 있는지 알고 싶습니다 어떻게 연결 장치를 원하는대로 연결하십시오.

  • 수신 & 연결을 통해 데이터를 보내십시오.
  • handle tcp timeouts/disconnec ts/etc & IP에 대한 연결을 다시 설정하십시오.

이러한 구성 요소가없는 경우 어떻게해야합니까? 예를 들어 스레드 당 하나의 연결, 또는 데이터가 여러 패킷 등으로 수신되면 어떻게 처리합니까?

모든 통찰력이 크게

답변

2

이 거기 당신은 당신이 원하는 것을 달성하기 위해 사용할 수 있다는 기존의 여러 구성 요소가 있습니다 감상 할 수있다. Check http://www.networkcomms.nethttp://code.google.com/p/lidgren-network-gen3/.

사람들은 항상 당신이주는 예제에 따라 처음부터 모든 것을 쓰는 것을 멈추게하는 것이 아무것도 없다고 덧붙인다.

면책 조항 : NetworkComms.Net의 개발자입니다.

+0

@MarcF에 동의합니다. 저는 대학원생으로서 (AI에서) 제 자신이고 여러 번, API를 이해해야하는 필요성을 회피하고 (일부 경우 희소하거나 복잡 할 수 있음) 필요한 부분을 처음부터 작성하는 것이 매우 유용 할 수 있습니다. 필요로하는 정확한 기능을 직접 작성해야합니다. – 9codeMan9

관련 문제