【问题标题】:Why "using Net.Sockets " is missing in dot42 C# android?为什么 dot42 C# android 中缺少“使用 Net.Sockets”?
【发布时间】:2013-10-19 03:12:49
【问题描述】:

我正在尝试使用 c# 在 dot42 中通过 TCP/IP 编写一个小聊天。问题是缺少“Net.Sockets”!这很奇怪,因为它是 C# 系统的一部分。

using System;
using Android.App;
using Android.Os;
using Android.Widget;
using Dot42;
using Dot42.Manifest;
using System.Net;
using System.Net.Sockets; // it is not recognized !

【问题讨论】:

  • 他们的网站说:“Android API 可以不受限制地使用,就好像它是作为项目引用添加的 .NET 程序集一样。”所以我认为你可以使用java.net.Socket ?
  • 它应该是using Java.Net;,如本例中的github.com/dot42/samples/blob/master/Networking/HttpServer/…
  • 见上面eee的评论。
  • 使用 Java.Net.Socket 不起作用。但是,正如我向 Frank 评论的那样,这些类型在 Java.Net 中,我不需要导入它们,因为它在 Java 风格中很常见。

标签: c# android tcp tcpclient dot42


【解决方案1】:

eee 已经为您的问题提供了解决方案。让我试着回答“为什么缺少 System.Net.Sockets?”这个问题。

正如 Bart 所指出的,Android API 的使用不受限制。原因是它是一种自动转换。所以它完全可以通过设计获得。

与 Android API 相比,.NET API 是在 Android API 之上手工制作的。例如,.NET Dictionary 类被实现为 java.util.Map 的包装器,System.String 被实现为 java.lang.String 的包装器。换句话说,我们从 .NET 中获取 API,但从 Java 中获取实现。这与 Mono 形成鲜明对比。您将看到新版本中添加了 .NET 类型。

【讨论】:

  • 我想现在我明白了。实际上,现在“使用 Java.Net”包括“套接字”作为“类型”而不是“命名空间”;所以我可以访问套接字。但是,不能遵循 C# 编程的风格(正如你提到的,它还没有实现)。由于 System.Net.Socket 中没有可用的相同类型,例如:“AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp”。我尝试使用 Mono (xamarin)。我可以使用相同的 C# 代码并获得预期的结果。我期待很快看到 Dot42 的新版本。
  • 上述问题的评论者之一(:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 2010-09-26
相关资源
最近更新 更多