2017-04-06 65 views
0

我遇到問題。我需要在xamarin表單上使用TcpClient,但「System.Net.Sockets」不會安裝。我無法使用Nuget來安裝它。在xamarin表單上安裝System.Net.Sockets pcl

的錯誤是:

無法安裝程序包 '的System.Net.Sockets 4.3.0'。您正在嘗試使用 將此程序包安裝到一個項目中,該項目的目標爲'.NETPortable,Version = v4.6,Profile = Profile44',但程序包不包含與該框架兼容的任何程序集引用或內容文件 。欲瞭解更多信息,請聯繫 軟件包作者。

enter image description here

在iOS和Android的項目,這是能夠安裝,但在這個便攜式項目也不會安裝。

我該如何解決這個問題?

感謝

+0

很好,如果你可以在iOS系統中安裝和android然後你是一半的方式,你可以從便攜式課程調用它們。因爲如果它不能安裝在PCL上,那麼你可以做的只是一點,就是複製「System.Net.Sockets 4.3.0」的代碼。並使用你需要的類。可能它使用一些其他庫不支持PCL – BraveHeart

+0

https://developer.xamarin.com/api/namespace/System.Net.Sockets/這裏存在pcl ...是支持這在xamarin形式 –

回答

0

你應該嘗試this plugin

的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); 

否則,你可以嘗試實現平臺相關的代碼插槽..

+0

嗨亞歷山德羅,現在我使用這個插件,但異步模式丟失接收字節 –

+0

我認爲你可以在Github上打開一個問題 –

0

請參閱本thread上爲什麼無法將套接字類安裝到PCL項目中,即使它在Xamarin.iOS和Xamarin.An中受支持機器人。

除了使用一些PCL就緒插座的NuGet包,你也可以選擇到System.Net.Socket安裝到Android & iOS和調用它們通過DependencyServices.