Xamarin Android TCP-SocketException - >无效的参数

时间:2016-05-06 10:34:08

标签: sockets tcp xamarin xamarin.android

我使用Xamarin.Android编写了一个Android应用程序,它使用tcp套接字连接到在我的本地计算机上运行的服务器。只要我的Android设备和我的计算机都连接到我的路由器,这都可以正常工作。现在我用手机连接到我的计算机上的managednetwork createt尝试了同样的事情但是在使用Errorcode 10022调用socket.connect(ipendpoint)时出现了无效的错误。

以下是相关代码:

Socket sck = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
IPHostEntry HostDnsEntry = Dns.GetHostEntry ("192.168.173.1");
var endpoint = new IPEndPoint (HostDnsEntry.AddressList [0], 6667);
sck.Connect (endpoint);

正如我所说,我的路由器本地网络中的代码运行良好。哪个可能是问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

套接字错误10022

  

提供了一些无效参数(例如,为setsockopt函数指定了无效级别)。在某些情况下,它还引用套接字的当前状态 - 例如,在未侦听的套接字上调用accept。

您的套接字服务器似乎没有绑定并正在侦听192.168.173.1:6667

您可以使用PC上的以下内容从PC连接到基于插槽的服务器吗?

telnet 192.168.173.1 6667

(或其他一些tcp工具,例如nc,或者192.168.173.1:6667是否会在port scannetstat中显示?)

如果没有,您的服务器套接字不会绑定到该接口/端口,因此您的Android设备和/或仿真器也无法连接到它。