簡體   English   中英

如何在同一台計算機上運行客戶端和服務器UDP偵聽器

[英]How to run client and server UDP listeners on the same machine

客戶端和服務器都在給定的端口上發送和接收。 在生產中,它們位於單獨的機器上,沒有問題。 在開發中,在同一台計算機上運行它們將大大方便,而無需部署,設置和拆除遠程調試會話。

我試過了

var uc = new UdpClient();
var ep = new IPEndPoint(address, port);
uc.ExclusiveAddressUse = false;
uc.Client.Bind(ep);

而且它不會發出f叫聲,但是我仍然無法將多個偵聽器綁定到同一端點。 之后,我發現ExclusiveAddressUse無論如何都默認為false,因此這種方法只會產生額外的代碼。

這有可能嗎?

您顯然不能在同一台計算機上使用相同的端口,只需使用#if指令進行debug並相應地更改端口

以下內容可能會有所幫助

客戶

#if DEBUG
    uc client = new UdpClient(34534);
#else
    uc client = new UdpClient();
#endif

UdpClient構造函數(Int32)

初始化UdpClient類的新實例,並將其綁定到提供的本地端口號。

備注

此構造函數創建一個基礎Socket,並將其綁定到您打算與之通信的端口號。 如果僅對設置本地端口號感興趣,請使用此構造函數 基礎服務提供商將分配本地IP地址。 如果將0傳遞給構造函數,則基礎服務提供者將分配一個端口號。 如果使用此構造函數,則將為UdpClient實例設置IPv4地址族,該地址族不能被具有IPv6目標的connect方法調用更改或覆蓋。

免責聲明 ,未經測試,請閱讀文檔,可能是錯誤的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM