C# 在同一网络上将windows Winform应用程序与Android平板电脑连接

C# 在同一网络上将windows Winform应用程序与Android平板电脑连接,c#,.net,winforms,C#,.net,Winforms,我正在尝试在局域网或WLAN上查找winform应用程序并将其与android平板电脑连接 我已经在android上实现了一个tcp服务器,它正在监听端口,并等待请求 然后,我尝试实现Winform应用程序,通过向该平板电脑发送请求并检查响应,该应用程序应尝试扫描网络以找到该平板电脑 我陷入了第二部分,如何检查网络并有效地向这个端口发送请求?我需要找出平板电脑的ip以便连接它们 我发现这个代码: 但它检查网络上的个人电脑,没有显示安卓平板电脑 我想到的第一个解决方案是实现webservice,

我正在尝试在局域网或WLAN上查找winform应用程序并将其与android平板电脑连接

我已经在android上实现了一个tcp服务器,它正在监听端口,并等待请求

然后,我尝试实现Winform应用程序,通过向该平板电脑发送请求并检查响应,该应用程序应尝试扫描网络以找到该平板电脑

我陷入了第二部分,如何检查网络并有效地向这个端口发送请求?我需要找出平板电脑的ip以便连接它们

我发现这个代码:

但它检查网络上的个人电脑,没有显示安卓平板电脑


我想到的第一个解决方案是实现webservice,它将接收来自android的请求,PC将定期请求并获得平板电脑的IP。仍然不是那么有效的解决方案。

一种可能确实是Web服务。然后,您可以让android设备订阅和取消订阅,以了解谁已连接。客户机寻找服务器通常比另一种方式更容易。 您可以将阈值设置为5分钟,如果在此期间设备未续订,则会将其标记为不负责任,您可以再次尝试访问该阈值,或者忘记它已在服务器端订阅。 在这里,您可以找到如何使用WCF Web服务的示例:

在网络方面,如果这不是路由器造成的问题,我建议您进行检查。有时,如果您有默认设置,某些端口可能会被阻塞,需要在路由器配置中取消阻塞。 为此,我建议使用lioke nmap工具:

  • (在windows下安装)

您只需知道设备ip即可扫描打开的端口。在我的例子中,我在底部的“设置”>“Wifi”>“高级”下找到了它。你可以看到你的Wifi MAC和IP(Android 6.0.1,Nexus 5)

你试过这个吗:?看起来很有希望。顺便说一句,您可以手动枚举IP空间(并行!)尝试连接到您的Android TCP服务器。你甚至可以设置一个很短的超时,当它失败时,好吧……那不是一个运行你的应用程序的android设备。对于小型网络,这不会花费太长的时间(我猜大约30/40秒)。同一个项目可能会在不同的位置使用,因此订阅过程将带来严重的开销,使用用户名和密码登录PC用户,订阅平板电脑和安全设备将出现。我试图逃避这个解决方案技术上你是对的。但是WCF提供了内置的用户和/或设备身份验证机制。()您不想自己使用它。WCF的另一个优点是Web服务也可以被不同的平台使用。也许你需要将它移植到standalon版本或iOS之后,那么你已经有了bakcend。根据我的经验,对Web服务进行身份验证/注册的开销可以忽略不计(我自己在一个500多个并发客户端连接到一个离线服务器的系统中尝试过),谢谢。因为我对web服务没有很好的了解,所以我试图远离它。但它是更好的解决方案,甚至可以在后期跟踪项目。仍然找不到好的教程来简化登录过程,如果您添加更多关于登录和webservice的资源,那就太好了。(web服务的会话是否与我在您发布的教程中看到的普通网站一样?)