在xamarin表单pcl上安装System.Net.Sockets

时间:2017-04-06 12:35:39

标签: c# sockets xamarin.forms tcpclient system.net.sockets

我有问题。我需要在xamarin表单上使用TcpClient,但是" System.Net.Sockets"不会安装。我无法使用Nuget来安装它。

错误是。:

  

无法安装软件包&System; Net.Socket.Socket 4.3.0'。你在尝试   将此包安装到目标项目中   ' .NETPortable,版本= v4.6,Profile = Profile44',但包有   不包含任何程序集引用或内容文件   与该框架兼容。有关更多信息,请联系   包裹作者。

enter image description here

在iOS和Android项目中,这是可以安装的,但在这个便携式项目上它不会安装。

我怎么能解决这个问题?

由于

2 个答案:

答案 0 :(得分:1)

请参阅此thread,了解为何无法将套接字类安装到PCL项目中,即使它在Xamarin.iOS和Xamarin.Android中也受支持。

除了使用一些PCL就绪套接字nuget包之外,您还可以选择将System.Net.Socket安装到Android& iOS,并通过DependencyServices.

调用它们

答案 1 :(得分:0)

您应该尝试lifecycle hooks

tpc listner

var listenPort = 11000;
var listener = new TcpSocketListener();

// when we get connections, read byte-by-byte from the socket's read stream
listener.ConnectionReceived += async (sender, args) => 
{
    var client = args.SocketClient; 

    var bytesRead = -1;
    var buf = new byte[1];

    while (bytesRead != 0)
    {
        bytesRead = await args.SocketClient.ReadStream.ReadAsync(buf, 0, 1);
        if (bytesRead > 0)
            Debug.Write(buf[0]);
    }
};

// bind to the listen port across all interfaces
await listener.StartListeningAsync(listenPort);

否则,您可以尝试在特定于平台的代码中实现Socket ..