wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了win-universal-app – 无法访问Windows Universal Application中的TCP Server大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个 Windows Universal Application应该充当TCP服务器. m_Listener = new StreamSocketListener(); m_Listener.ConnectionReceived += (s, E) => ProcessrequestAsync(e.Socket); var bind = m_Listener.bindservicenameAs
我有一个 Windows Universal Application应该充当TCP服务器.

@H_50_21@m_Listener = new StreamSocketListener(); m_Listener.ConnectionReceived += (s,E) => ProcessrequestAsync(e.socket); var bind = m_Listener.bindservicenameAsync("8080").Wait();

在启动应用程序之前,端口没有绑定到任何东西:

C:\Users\jsant>netstat -a | grep 8080
^C (Cancelled after some seconds because no reasults were found)

然后,当我启动应用程序时:

C:\Users\jsant>netstat -a | grep 8080
  TCP    0.0.0.0:8080           LaPTOP:0       LISTENING

套接字正在我的电脑上听!
试图以某种方式访问​​它会导致错误

C:\Users\jsant>telnet 127.0.0.1 8080
ConnecTing To 127.0.0.1...Could not open connection to the host,on port 8080: Connect Failed
C:\Users\jsant>telnet 192.168.1.167 8080
ConnecTing To 192.168.1.167...Could not open connection to the host,on port 8080: Connect Failed    
C:\Users\jsant>telnet LaPTOP 8080
ConnecTing To LaPTOP...Could not open connection to the host,on port 8080: Connect Failed    
C:\Users\jsant>telnet localhost 8080
ConnecTing To localhost...Could not open connection to the host,on port 8080: Connect Failed

作为一个可能的原因,我已经激活了所有删除它的功能.

在控制台应用程序上运行的相同代码工作得很好.

另外,从中运行MS示例
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DatagramSocket有相同的结果.
在应用程序内部,插座是可见的,在外面,不是!

在Windows Universal Application中运行服务器有任何限制,还是我遗漏了什么?

谢谢!

若昂

编辑我认为我不够清楚.我的问题是从外部应用程序访问TCP服务器.该应用程序可以是telnet,Web浏览器等.服务器位于Windows Universal App内.

编辑#2
我花了最后一小时改变这个例子:https://ms-iot.github.io/content/en-US/win10/samples/BlinkyWebServer.htm并在我的Rasp@R_502_1697@ Pi 2中运行它我能够从我的计算机访问网络服务器.在我的计算机上运行相同的应用程序我无法连接.这真奇怪!

编辑#3我已经更改了我的应用程序,只保留了Internet(客户端和服务器)功能而没有声明.在Rasp@R_502_1697@ Pi中运行完美无瑕,在我的本地计算机上,仍然没有运气(本地或远程).是的,防火墙已被禁用:).基于Jared的评论,他在计算机上确认了同样的问题,这在我看来是一个错误.我会继续调查.

在了解命令“checkNetisolation”后编辑#4,添加“PrivateNetworkClientServer”功能允许我从外部设备访问.仍然无法从本地计算机访问它(即使添加了LoopBACkExempt规则)

解决方法

我不确定telnet是否可以连接到StreamSocketListener.我从来没有尝试过.尝试使用下面的内容,让我知道它是否有效.我稍微改变了绑定监听器的调用,因为这是我在设置中工作的方式.此外,请记住,像这样的本地网络环回将在调试中工作,但它不适用于已发布的商店应用程序.

如果它有效,您应该会看到一个消息对话框,显示已触发ConnectionReceived事件. :)希望有所帮助!

@H_50_21@m_Listener = new StreamSocketListener(); m_Listener.ConnectionReceived += (s,E) => ProcessrequestAsync(e.socket); await m_Listener.bindservicenameAsync("8080"); var ss = new StreamSocket(); await ss.ConnectAsync(new HostName("127.0.0.1"),8080); private async void ProcessrequestAsync(StreamSocket E) { await new messageDialog("Connection received!","New Connection").ShowAsync(); // The rest of your code goes here. }

大佬总结

以上是大佬教程为你收集整理的win-universal-app – 无法访问Windows Universal Application中的TCP Server全部内容,希望文章能够帮你解决win-universal-app – 无法访问Windows Universal Application中的TCP Server所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。