2010-03-30 2 views
1

나는 해결해야 할 새로운 문제로 인해 필자에게 편지를 쓰고 있으며 지금은 너무 오랫동안 벽에 머리를 두드렸다.C에서 무겁게 제한된 서버 검색 응용 프로그램 만들기 #

는 기본적으로, 나는 다음과 같은 처리 갈 수 있고 응용 프로그램을 작성해야합니다 :

는 사용자가 서브넷으로 브로드 캐스트를 전송 응용 프로그램을 시작을하고, 자신의 IP와 거기에 모든 서버의 응답을 (접수에 및 몇 가지 추가 정보). 그러면 사용자는 연결할 서버를 선택할 수 있습니다.

서브넷을 식별하고 UDP로 브로드 캐스팅 한 다음 다른 서버 응용 프로그램에서 수신하고 응답을 보내면 작업이 간단 해집니다. 우리는 응용 프로그램이 모든 시스템에 존재하는 것으로 가정 할 수 있음을 의미

  • 가능성도있을 것입니다 클라이언트를 네트워크에서 서버 시스템에서 : 문제는 내가 고려해야 할 필요가 이러한 제한으로 자리 잡고 있습니다. 모든 시스템은 리스너를 실행해야하며 모든 시스템은 서버를 선택하기 위해 GUI를 시작할 수 있습니다.
  • 방화벽에 하나의 예외 만 추가 할 수 있습니다. 예외는 브로드 캐스트 전송, 브로드 캐스트 수신, 응답 보내기 및 응답 수신을 모두 처리합니다.
  • 서버 컴퓨터에 하나의 Windows 서비스
  • 만 추가해야하는 경우 수신기는 Windows 서비스로 실행되어야하므로 사용자는이를 인식하지 못합니다. 또한 사용자는 응답이 클라이언트에 다시 전송된다는 것을 알리지 않습니다.
  • 클라이언트 컴퓨터에서 사용자는 응용 프로그램을 시작하여 응용 프로그램에 브로드 캐스트를 내보내도록 알리고 모든 서버 응답을 가져와 사용자가 연결할 서버를 선택할 수 있습니다.
  • 사용자가 서버를 선택하기 위해 실행하는 응용 프로그램 외에도 사용자와의 상호 작용이 없어야합니다. 트래픽을 허용하도록 사용자에게 요청조차 팝업은 방화벽 물마루 - 모든해야 자동으로
  • 그것은 내가하지

7. 윈 XP, 윈 Vista 및 승리 사이에과에서 작업 할 필요가
  • 내가 너무 많은 제약을 나 자신에게 가하는지를 안다. 그러나 나는 정말로 내가 이러한 요구 사항으로 어플리케이션을 만들 수 있기를 바란다.

    • 은 내가 방화벽 예외 목록에 추가하는 것이, 하나의 응용 프로그램으로 모든 것을 할 경우, 그래서 알아서합니다 : 난 그냥 그것을 할 방법을 강구해야 -

      나는 몇 가지 아이디어를 가지고 서버와 클라이언트 컴퓨터 모두의 트래픽?
    • 방화벽에 사용자 정의 예외를 추가하고 특정 포트에서 UDP 트래픽을 허용 한 다음 모든 트래픽 흐름을 차단해야합니까?
    • 세 번째로 더 나은 관리 옵션이 있습니까?
    • 클라이언트 컴퓨터와 서버 컴퓨터 모두에서 서비스를 실행하는 것이 좋습니다. 그러나 그것은 나를 위해 모든 것을 다룰 수 있습니까? 방송 송/수신 및 응답 보내기/수신을 모두 처리하는 것과 같은 것입니까? 그리고 서비스에서 네트워크상의 서버에 대한 정보를 추출 할 수있는 방법이 있습니까?

    저는 그것이 많이 있다는 것을 알고 있지만, 정말로 당신이 나를 도울 수 있기를 바랍니다.

    내가 충분히 명확하지 않거나 추가 설명이 필요하면 알려주세요.

    저는 C# .Net으로 코딩하고 있습니다. .NET 프레임 워크에서 원하는 모든 것을 활용할 수 있습니다. 최대한 빨리이 기능이

    을 구현 한 모든 최고의

    /SAGI

  • 답변

    0

    UPnP 서버 및 클라이언트가 문제의 해결책 일 수 있습니까?

    +0

    답장을 보내 주셔서 감사합니다. – Sagi1981

    +0

    사실, UPnP에서 검색에 사용되는 SSDP 프로토콜은 System.Net.PeerToPeer 네임 스페이스에 구현 된 PNRP에서 지원하는 것과 동일합니다. , 그래서 꽤 잘 작동해야하며 방화벽에서 UPnP 예외를 사용하면 방화벽에서도 작동해야합니다. – Lucero

    +0

    다른 답변에 대한 내 의견을 보면. UPnP도 PeerToPeer를 활성화해야하며 보안 위험이 있습니까? – Sagi1981

    1

    피어 - 투 - 피어 네트워킹 문제의 종류 당신이로 하나 개의 머신을 지정하는 경우 사소한되는 점에 간단하게 마스터 서버. 모든 서브 서 v가 연결할 수있는 잘 알려진 이름을 가져야합니다. 그래야 가용성을 게시 (및 철회) 할 수 있습니다. 클라이언트는 쿼리 요청을 동일한 서버에 보내고 알려진 서버 목록을 반환 할 수 있습니다.

    또한 방화벽 문제를 해결할 수, 마스터 서버 포트에 프레임 워크가 지원하는 P2P 솔루션의 System.Net.PeerToPeer 네임 스페이스에 80

    봐 청취 할 수있다.

    +0

    문제는 여러 네트워크에서 작동해야하며 마스터 서버를 설정할 수 없다는 것입니다. 그것이 복잡하다는 것을 알고 있지만 그것 없이는 일해야합니다. 빠른 답장을 보내 주셔서 감사합니다. – Sagi1981

    +0

    System.Net.PeerToPeer를 조사하여 도움이되는지 확인합니다. 내가 명확하게하지 않은 경우 사용자는 네트워크에 별도의 클라이언트 서버 응용 프로그램을 가지고 있으며 여기에서 연결할 서버의 IP/이름을 수동으로 입력 할 수 있습니다. applcation은 브로드 캐스트되어야하며 서버가 실행중인 시스템을 식별해야하며 주소를 전송해야합니다. Netowrk 설정 방법은 내가 모르는 것입니다. 그리고 '정적으로'명명 된 마스터 서버를 관리 할 것으로 기대할 수는 없습니다. 그러나 그것은 나를 완전히 오해 할 수도 있습니다. 그렇다면 사과드립니다. – Sagi1981

    +0

    피어 투 피어 옵션은 문제를 해결할 수있는 것처럼 보입니다. 하지만 Windows 구성 요소 - 네트워킹 서비스에서이 기능을 활성화해야합니다. 사용자가이 옵션을 사용할 수 있다고 보장 할 수 없으며 잠재적 인 보안 위반에 대비하여 개방하지 않습니까? 또는 내가 그 구성 요소가 작동하도록하기 위해 필요한 구성 요소가 잘못되었다고 가정합니다. (예를 들어 여기에서 찾았습니다. http://blogs.msdn.com/p2p/archive/2007/03/12/ peer-to-peer-applications-net-part-1-pnrp.aspx를 사용합니다. 계속 좁히고 있습니다 만 peerToPeer 워크 래라운드를 사용하지 않고도 성취 할 수 있습니까? – Sagi1981

    관련 문제