簡體   English   中英

在UWP TcpListener中,AcceptTcpClientAsync不起作用

[英]In UWP TcpListener AcceptTcpClientAsync doesn't work

我正在移植一些TcpListener / TcpClient / etc代碼來處理UWP。 但是,在通用Windows c#app中工作的最基本的操作在UWP下失敗了。

最基本的操作,例如等待TcpClient失敗:

private async Task TestTcpListening()
{
    Debug.WriteLine("Creating TcpListneer");
    int portNumber = 8554;
    TcpListener listener = new TcpListener(IPAddress.Any, portNumber);
    listener.Start();

    while(true)
    {
        Debug.WriteLine("Waiting on TcpListener to accept client");
        TcpClient client = await listener.AcceptTcpClientAsync();
        Debug.WriteLine(string.Format("We got a client! {0}", client));
    }
}

如果我在通用的Windows控制台應用程序中運行此代碼,當我勾選localhost URL時,“我們有一個客戶端”位會運行。 如果它在UWP應用程序中運行,它將永遠等待並且調用應用程序超時。

筆記:

  • 我在Package.appxmanifest中選擇了Internet(客戶端和服務器)Internet專用網絡功能
  • 我正在移植一個RTSP服務器,它作為一般的Windows應用程序工作正常。 因此,我使用的URI是“rtsp:// localhost:8554”。 當構建為命令行Windows應用程序時,上面的代碼按預期工作,將VLC指向該URI。 相同代碼的UWP版本永遠等待,VLC超時。
  • 我是Windows的新手,所以我還不知道我不知道的是什么。

感想:

  • 我是否需要以某種方式啟用“rtsp:”協議訪問應用程序? 當rtsp:url被擊中時,我不希望該應用程序打開。 我只是希望處理傳入的連接。

作為Windows開發的新手,尤其是UWP,我不知道環回限制。 目前,為了測試我的RTSP端口,在同一網絡上的另一台計算機上使用VLC解決了我上面的問題。

暫無
暫無

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

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