【发布时间】:2019-02-19 19:24:28
【问题描述】:
我遇到了非常奇怪的问题。我有 2 个应用程序,一个只是我的概念证明,另一个是我的真实应用程序。两者都是支持 Android、iOS 和 UWP 的 Xamarin.Forms 应用程序。
这两个应用程序都使用 TcpClient 连接到我在另一台机器上的 IP 和端口号。但这就是发生的事情:
- 我的概念验证应用程序运行良好,它可以发送和接收数据 往返该 IP/端口#
- 我还在 Android 上使用 TerminalEmulator 应用程序,在 iOS 上使用 Ping,它允许您 ping IP 地址。两台设备都能 ping 通 IP,这意味着 IP 对设备可见
- 但是,如果我尝试从同一设备上的真实应用程序进行连接,我会收到“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