Xamarin.Forms应用程序TcpClient连接错误,出现“无路由到主机”异常

时间:2019-02-19 19:24:29

标签: xamarin.forms tcpclient socketexception

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

这两个应用程序都使用TcpClient连接到另一台计算机上的IP和端口号。但这是发生了什么:

  1. 我的概念验证应用程序运行良好,可以发送和接收数据 到该IP /端口#
  2. 我还使用Android上的App TerminalEmulator和iOS上的Ping,可让您ping IP地址。两台设备都可以ping通IP,这意味着该IP对设备可见。
  3. 但是,如果我尝试从同一设备上的真实应用程序进行连接,则会收到“没有路由到主机”的异常

我的POC应用程序如何连接,我可以从Android / IOS设备ping主机,但无法从真实的应用程序连接并出现此错误:

enter image description here

这就是我尝试连接的方式

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(...);

1 个答案:

答案 0 :(得分:0)

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