網路對等 TCP
這個範例示範使用 NetPeerTcpBinding 繫結,此繫結會使用對等通道提供多方通訊。這個範例是使用者入門範例的變化。如需 Windows Communication Foundation (WCF) 的概觀,請參閱使用者入門範例。
在此範例中,應用程式執行個體是自我裝載的主控台應用程式。
和其他傳輸繫結範例不一樣,這個範例會使用自訂合約介面 (IBroadcast
) 來說明多方通訊。所有執行個體都會實作此合約,以接收訊息並使用相同的合約建立 Proxy,進而將訊息傳送至網狀結構。將雙工通道建立為網狀結構即可示範。
注意: |
---|
此範例的安裝程序與建置指示位於本主題的結尾。 |
為了方便瞭解範例中的繫結組態程序,您需要具備下列對等通道概念:
- 「對等解析程式」(Peer Resolver) 會負責將網狀結構識別碼解析為網狀結構中少數節點的端點位址。
- 「網狀結構」(Mesh) 是對等節點的具名集合,這些對等節點是透過網狀結構識別碼所識別。
- 「對等節點」(Peer Node) 是參與網狀結構之應用程式的執行個體。
- 網狀結構識別碼可用來識別網狀結構中端點位址的主機部分。例如,如果這些位址是 "net.p2p://chatMesh/servicemodelsamples/chat" 或 "net.p2p://broadcastMesh/servicemodelsamples/announcements",則其中的 chatMesh 和 broadcastMesh 即是網狀結構識別碼。
- 參與網狀結構的所有用戶端都會使用相同的網狀結構識別碼,但可能會使用不同的路徑和服務。針對特定端點位址發出的訊息會傳遞到所有使用該位址的對等通道。
對等節點開啟 (因開啟對等通道而開啟) 時,會使用對等解析程式將網狀結構識別碼解析為要連接的幾個其他對等節點位址。這會建立相連節點的網狀結構,並使訊息得以在整個網狀結構上傳播。
傳送者和接收者的組態檔中會指定繫結。繫結型別是在端點項目的 binding 屬性中指定,如下列範例所示。
<client>
<endpoint name="BroadcastEndpoint"
address=
"net.p2p://broadcastMesh/servicemodelsamples/announcements"
binding="netPeerTcpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.IBroadcast">
</endpoint>
</client>
如果您搭配預設行為使用 NetPeerTcpBinding 繫結,就會啟用密碼架構安全性。繫結項目會提供一些屬性,讓您可以設定連接埠、接聽 IP 位址、解析程式類型、訊息大小上限、緩衝集區大小上限、讀取器配額、對等節點驗證模式、訊息驗證和逾時 (關閉、開啟、傳送和接收)。
注意: |
---|
這個範例會使用預設對等解析程式 (PNRP),但是此解析程式無法在 Windows Server 2003 中使用。因此,若要在 Windows Server 2003 中執行這個範例,您必須使用自訂對等解析程式。請參閱對等通道交談,以取得使用自訂對等解析程式的範例,如下列程式碼所示。 |
<netPeerTcpBinding>
<binding configurationName="Binding1">
<resolver mode="Custom">
<customResolver type=
"MyAppNameSpace.MyCustomPeerResolver, myApp"/>
</resolver>
</binding>
</netPeerTcpBinding>
您必須將含有 MyCustomPeerResolver
的檔案與傳送者和接收者一起編譯。請注意,如果範例是在不同平台的多部電腦上執行,這些電腦就必須都使用相同的解析程式。
接收者和傳送者的實作也會示範如何擷取與接收者或傳送者執行個體相關聯的對等節點,以及如何註冊其線上和離線事件。當對等節點連接至網狀結構中至少一個其他對等節點時,就會初始化線上事件。當對等節點不再連接至網狀結構中任何其他對等節點時,會初始化離線事件。
此時,對等通道不會與 Service Model Metadata Utility Tool (Svcutil.exe) 整合。因此,無法使用 Svcutil.exe 為傳送者產生型別通道。
執行傳送者時,會顯示訊息,指出已準備好要傳送訊息。按下 ENTER,即可傳送範例交談訊息。這個訊息會顯示於任何目前正在執行的接收者用戶端主控台視窗中。若要結束用戶端,請在該用戶端 (傳送者或接收者) 的主控台視窗中,再按一次 ENTER。
如果啟用追蹤或訊息記錄,則可以監視更深層級的傳送者和接收者活動。下列程序說明如何啟用追蹤和訊息記錄。
注意: |
---|
您必須注意,此範例目前不會處理基礎架構可能擲回的所有可能例外狀況。如果您在商用或實際執行環境中使用這些範例,請遵循正確的例外狀況處理最佳做法。 |
若要設定、建置及執行範例
若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例中的指示。
若要在單一電腦組態中執行範例,請遵循執行 Windows Communication Foundation 範例中的指示。
在 Windows Vista、Windows XP SP3 和 Windows Server 2008 中都可以使用 PNRP。若是 Windows XP SP2,請遵循下列單次安裝指示:
- 按兩下 [控制台] 中的 [新增或移除程式]。
- 按一下 [新增或移除程式] 對話方塊中的 [新增/移除 Windows 元件]。
- 在 [Windows 元件精靈] 中,選取 [網路服務] 核取方塊,再按一下 [詳細資料]。
- 核取 [對等] 核取方塊,然後按一下 [確定]。
- 按一下 [Windows 元件精靈] 中的 [下一步]。
- 完成安裝時,請按一下 [完成]。
- 從命令殼層提示字元中,使用下列命令來啟動 PNRP 服務:net start pnrpsvc。
在此範例中的任何步驟,只要是步驟 3 所指的用戶端和服務,都適用於傳送者和接收者。
啟動接收者 (或多個接收者) 和傳送者。當執行個體連線時,請在傳送者應用程式的主控台中按下 ENTER,以傳送範例訊息至彼此的接收者。所有接收者都會收到傳送者傳送的交談訊息。
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.