27026
AndroidとiOSアプリを作成しようと  
Visual Studio 2015とXamarin4.1でアプリを作り始めたのですが・・・  
とりあえず通信だけでも実装しようと  
Cross-Platformアプリの中から、blank app(Xamarin.Froms
Portable)と言うプロジェクトテンプレートをベースにソリューションを一つ作りました

その中に移植可能、Android、iOSやユニバーサルアプリのプロジェクトが作成され  
今まで.Netで使用していたTCPの自分用のライブラリのソースコードをコピーしてきたのですが・・・  
移植可能なプロジェクトでは  
using System.Net.Sockets;  
が使用不可能なnamespaceになってしまいます

Android,iOSではusing System.Net.Sockets;が使用可能となっているのですが、  
移植可能なプロジェクトでは使用できません  
また、クロスプラットフォームなライブラリのプロジェクトを作成しても、そのプロジェクト内では  
using System.Net  
まではあるようなのですがやはりSocketsは存在しません

<https://developer.xamarin.com/api/namespace/System.Net.Sockets/>  
こちらのページにはapiとして掲載されているので、  
使えるはずではあるようなのですが・・  
参照はデフォルトのままです(新たな参照しようとすると、全ての参照可能なFrameworkアセンブリは既に参照されているとなります)

従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したいのですが  
この様な場合はどうやって使用できるようにすれば良いのでしょう
CC BY-SA 3.0
2016-06-24T07:50:16.333
27022
2016-07-13T06:54:33.063
15047
question
ios android visual-studio xamarin
Xamarinでsocketsが使えない
`System.Net.Sockets` 系のクラスは PCL（Portable Class Library） では使用できないですね。

PCL で使用される .NET Framework
は、対応する全てのプラットフォームで動作できる機能のみのサブセットなので、このように通常は使用できるがPCLでは使用できないクラスが多々あります。

PCL で Sokect が使用できるライブラリがあるようなので、利用されてはいかがでしょうか。

  * [NuGet Gallery | Sockets Plugin for Xamarin and Windows (PCL)](https://www.nuget.org/packages/rda.SocketsForPCL/)

> 従来のアプリを移植したいだけなのでTCP関連では、Socketsクラスを使用したい

の回答としては、 iOS や Android プロジェクト側にそのコードを書くしかない、となります。
CC BY-SA 3.0
2016-06-24T09:45:42.293
27026
2016-06-24T09:45:42.293
15190
27022
answer