0

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

错误是:

无法安装软件包“System.Net.Sockets 4.3.0”。您正在尝试将此包安装到以“.NETPortable,Version=v4.6,Profile=Profile44”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。

在此处输入图像描述

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

我该如何解决这个问题?

谢谢

4

2 回答 2

1

请参阅此线程,了解为什么不能将套接字类安装到 PCL 项目中,即使它在 Xamarin.iOS 和 Xamarin.Android 中受支持。

除了使用一些支持 PCL 的 socket nuget 包外,您还可以选择将 System.Net.Socket 安装到 Android 和 iOS,并通过DependencyServices 调用它们。

于 2017-04-10T05:28:47.457 回答
0

你应该试试这个插件

一个 tpc 监听器

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..

于 2017-04-06T12:40:45.740 回答