【问题标题】:Xamarin.Forms app TcpClient Error on Connect with "No route to host" exceptionXamarin.Forms 应用程序 TcpClient 错误连接时出现“无路由到主机”异常
【发布时间】:2019-02-19 19:24:28
【问题描述】:

我遇到了非常奇怪的问题。我有 2 个应用程序,一个只是我的概念证明,另一个是我的真实应用程序。两者都是支持 Android、iOS 和 UWP 的 Xamarin.Forms 应用程序。

这两个应用程序都使用 TcpClient 连接到我在另一台机器上的 IP 和端口号。但这就是发生的事情:

  1. 我的概念验证应用程序运行良好,它可以发送和接收数据 往返该 IP/端口#
  2. 我还在 Android 上使用 TerminalEmulator 应用程序,在 iOS 上使用 Ping,它允许您 ping IP 地址。两台设备都能 ping 通 IP,这意味着 IP 对设备可见
  3. 但是,如果我尝试从同一设备上的真实应用程序进行连接,我会收到“No route to host”异常

为什么我的 POC 应用可以连接,我可以从我的 Android/IOS 设备 ping 主机,但我无法从我的真实应用连接并收到此错误:

这就是我尝试连接的方式

public override async Task<IList<RoomGuestModel>> GetRoomGuestAsync(string roomNumber)
{
    using (TcpClient client = new TcpClient())
    {
        try
        {
            client.Connect(_tcpConnection.Address, _tcpConnection.Port);
        } 
        catch(Exception ex)
        {

        }
        ...
        ...
        // use NetworkStream to write message and read message
        await myStream.WriteAsync(...);
        ...
        await myStream.ReadAsync(...);

【问题讨论】:

    标签: xamarin.forms tcpclient socketexception


    【解决方案1】:

    问题是我使用了错误的IP地址,一旦我提供了正确的地址,我就可以连接了

    【讨论】:

    • 请尝试将其标记为答案,它将帮助有类似问题的其他人。
    • 我知道,但要等到 2 天到期。谢谢莱昂
    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多