如何使用套接字通过互联网发送数据?

我想通过桌面应用程序通过互联网发送数据。 我对sockets有点了解。 我已在局域网内传输数据,但现在我想通过互联网传输数据。 传输大量和小量数据的最佳方法是什么? 我的系统连接到可以访问互联网的服务器。 我系统的IP地址是动态的。 我不知道如何将数据发送到连接到互联网的另一个系统。 我需要找到路由器地址吗? (我的IP地址生成为192.168.1.15)。 是否使用了足够的套接字,或者是否需要HTTP?

是否有IEnumerable实现只迭代它的源(例如LINQ)一次

提供的items是q LINQ表达式的结果: var items = from item in ItemsSource.RetrieveItems() where … 假设每个项目的生成需要一些不可忽略的时间。 有两种操作模式: 使用foreach将允许开始使用集合开头的项目,而不是最终可用的项目。 但是,如果我们想稍后再次处理相同的集合,我们将不得不复制保存它: var storedItems = new List(); foreach(var item in items){ Process(item); storedItems .Add(item); } // Later foreach(var item in storedItems){ ProcessMore(item); } 因为如果我们只是做了foreach(… in items)那么temsSource.RetrieveItems()将再次被调用。 我们可以在前面使用.ToList() ,但这会迫使我们在开始处理第一个项目之前等待检索最后一个项目。 问题 :是否存在IEnumerable实现,它将像常规LINQ查询结果一样首次迭代,但会在进程中实现,以便第二个foreach将迭代存储的值?

你如何使用LINQ与Sqlite

有人会解释如何让LINQ使用Sqlite。

如何为List 创建属性

private List newList; public List NewList { get{return newList;} set{newList = value;} } 我想创建这样的东西,但这不起作用。 这只是一个展示我的目标的例子,因为它很常见的创建字符串和int甚至T的属性但是我从未见过List属性它是否甚至可以做这样的事情,为类型List创建属性? 编辑 我有一个普通的类具有正常的属性(字符串属性,int属性等),但我有这个属性存储用户选项,所以在表示层我必须将它们转换为字符串,所以我可以将它们存储在物体。 现在有可能有一个List类型的属性以更好和更干净的方式存储多值,而不是将信息转换为一个字符串然后拆分它再次加入它! 再次感谢= D EDIT2 private List<KeyValuePair> _settings; public List<KeyValuePair> MySettings { get { return _settings; } set { _settings = value; } } 我使用了你发布的确切代码,但属性仍然不会出现在对象的实例中,所以我尝试在get和set中添加代码(我想知道你为什么把它们留空或者意味着什么?)并且还添加了一个私有代码类中的变量,但它仍然没有出现在对象实例的属性中! 我希望你能提供确切的代码来实现这个属性,以及一个简单的代码,用于从这个类对象的实例中分配或检索它。这是第一次听到这个KeyValuePair并且所有的教程都很简单而不是我的好的,对不起! 最后的编辑:经过大量的研究和Mark Avenius的帮助,我找到了完美的答案。 希望每个人都能从中受益。 现在! 如何创建列表的属性: 选项类 Public Class Options { private string id; […]

在代码分析中使用Microsoft.Bcl.Async会导致错误

我正在尝试使用Microsoft.Bcl.Async和代码分析,但是当我运行代码分析时,我得到一个或多个错误。 我正在使用Visual Studio 2012和Update 2。 这对我来说很容易重现: 创建一个针对.Net 4的新默认控制台应用程序。 右键单击References然后选择Manage NuGet Packages… 单击“ Online然后在Search Online框中键入async 。 您应该看到Async for .Net Framework 4 … 单击“ Install并接受所有问题。 添加到Main()一行说: TaskEx.Delay(1000); 和一个using System.Threading.Tasks; 转到项目属性,代码分析部分,然后勾选Enable Code Analysis on Build 。 编译程序。 我收到两个代码分析错误: CA0052运行代码分析时出错CA0052:未选择任何目标。 [错误和警告](全球) CA0055运行代码分析CA0055时出错:无法加载ConsoleApplication2.exe。 读取模块“ConsoleApplication2”时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading.Tasks.TaskEx :: Delay。 [错误和警告](全球) 我为其他测试程序获得了不同的代码分析错误。 我试过的基本Windows窗体应用程序给了我: CA0001错误运行代码分析CA0001:读取模块“AsyncForNet4”时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = […]

在C#中拆分字符串

我认为这将是微不足道的,但我不能让这个工作。 假设CSV文件中有一行: “Barack Obama”, 48, “President”, “1600 Penn Ave, Washington DC” string[] tokens = line.split(‘,’) 我期待这个: “Barack Obama” 48 “President” “1600 Penn Ave, Washington DC” 但最后一个标志是’Washington DC’而不是”1600 Penn Ave, Washington DC” 。 是否有一种简单的方法可以让split函数忽略引号内的逗号? 我无法控制CSV文件但它没有发送给我。 客户A将使用该应用程序读取外部个人提供的文件。

WCF中的mex绑定错误

我正在使用VSTS 2008 + C#+ .NET 3.0。 我正在使用自托管的WCF服务。 执行以下语句时,会出现以下“未找到绑定”错误。 我已经发布了我的整个app.config文件,任何想法有什么问题? ServiceHost host = new ServiceHost(typeof(MyWCFService)); 错误信息: 无法通过绑定MetadataExchangeHttpBinding找到与端点的方案http匹配的基址。 注册的基地址方案是[https]。 完整的app.config:

entity framework5代码优先不创建数据库

我正在尝试使用Entity Framework的代码优先概念创建一个新数据库。 但是,在运行代码时,不会创建数据库(使用DropCreateDatabaseIfModelChanges设置),尽管代码运行正常。 当我尝试从数据库中获取内容时,我看到以下exception。 我的项目使用单独的DataAccess层进行设置,该层具有通用服务和存储库构造。 因此,我的所有实体,存储库和数据库上下文都在解决方案中的单独项目中。 我的global.asax文件包含以下代码。 Database.SetInitializer(new DropCreateDatabaseIfModelChanges()); 这应该初始化一个新的数据库,如果它不存在,对吧? 我的数据库上下文类看起来像这样; namespace Website.DAL.Model { public class MyContext : DbContext { public IDbSet Projects { get; set; } public IDbSet Portfolios { get; set; } /// /// The constructor, we provide the connectionstring to be used to it’s base class. /// public MyContext() : base(“MyConnectionString”) { […]

可以调用Assembly.Load(byte )来引发AppDomain.AssemblyResolve事件吗?

假设我有一个AppDomain.AssemblyResolve事件的处理程序,并在处理程序中我构造一个字节数组并调用方法Assembly.Load(byte[]) 。 此方法本身是否会导致再次引发AssemblyResolve事件,并导致我的处理程序重新进入? 我的问题不仅限于可以使用C#编译器生成的程序集,它们可以包含CLR支持的abritrary元数据和可执行代码。 我做了一些实验,发现时没有发现任何情况。 我试图加载需要额外引用的程序集,试图将CAS属性添加到加载的程序集,其解码需要另一个程序集,尝试使用模块初始化程序(全局.cctor方法)加载程序集。 在任何情况下,我都没有观察到AssemblyResolve事件是从Assembly.Load(byte[])方法内部引发的,只有在某些代码稍后尝试访问加载的程序集中的类型,方法或属性时才会发生。 但我可能会在这里遗漏一些东西。

c#.net没有安装Access的MS Access数据库

可能吗? 我试过谷歌,但我必须搜索错误的关键词而不是得到答案。 我有一个小应用程序,只有2-3人使用,我想将数据存储在数据库中。 我无法安装任何SQL服务器,所以我认为访问将是最好的选择。 它将使用的计算机也没有安装Access。 我正在使用VS2012 Express .net4.0