Tag: C#的

Websocket服务器:web套接字上的onopen函数永远不会被调用

我试图实现一个C#web套接字服务器,但它给了我一些麻烦。 我正在运行一个networking服务器(ASP.NET)来托pipe页面的JavaScript和Web套接字服务器被实现为一个C#控制台应用程序。 我能够检测到来自客户端的连接尝试(运行javascript的chrome),也能够从客户端检索握手。 但客户端似乎不接受我发回的握手(Web套接字上的onopen函数从来没有被调用过)。 我一直在阅读Web Socket协议 ,我不明白我做错了什么。 下面是一些服务器代码: Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8181); listener.Bind(ep); listener.Listen(100); Console.WriteLine("Wainting for connection…"); Socket socketForClient = listener.Accept(); if (socketForClient.Connected) { Console.WriteLine("Client connected"); NetworkStream networkStream = new NetworkStream(socketForClient); System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream); System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream); //read handshake from client: Console.WriteLine("HANDSHAKING…"); […]

entity framework中的POCO是什么?

我刚开始学习POCO,但不明白它的用途和优势。 即使下面的链接的stackoverflow没有帮助我。 什么是entity framework与POCO 有人可以用一个简单的例子来解释POCO的用法吗?

为什么std :: vector和std :: array的C ++ initializer_list行为不同?

码: std::vector<int> x{1,2,3,4}; std::array<int, 4> y{{1,2,3,4}}; 为什么我需要双花括号为std ::数组?

在Windows上__cdecl或__stdcall?

我目前正在开发Windows的C ++库,将作为DLL分发。 我的目标是最大化二进制互操作性; 更确切地说,我的DLL中的函数必须可以从多个版本的MSVC ++和MinGW编译的代码中使用,而无需重新编译DLL。 但是,我很困惑哪个调用约定是最好的, cdecl或stdcall 。 有时我会听到像“C调用约定是唯一一个保证与编译器相同的调用约定”这样的语句,这与“ 对cdecl的解释有一些变化,特别是在如何返回值 ”等语句形成对比。 这似乎并不阻止某些库开发人员(如libsndfile )在分发的DLL中使用C调用约定,而没有任何可见的问题。 另一方面, stdcall调用约定似乎是明确的。 据我所知,所有的Windows编译器基本上都需要遵循它,因为它是用于Win32和COM的惯例。 这是基于这样一个假设:没有Win32 / COM支持的Windows编译器不会非常有用。 在论坛上张贴了很多代码片段声明函数为stdcall但我似乎无法find明确解释为什么一个单一的职位。 这里有太多相互矛盾的信息,每次search都会给我不同的答案,这并不能帮助我在两者之间做出决定。 我正在寻找一个清晰的,详细的,辩论的解释,为什么我应该select一个在另一个(或为什么两个是相等的)。 请注意,这个问题不仅适用于“经典”function,而且适用于虚拟成员函数调用,因为大多数客户端代码将通过“接口”,纯虚拟类(以下描述的模式在这里和那里 )与我的DLL接口。

什么是全球::?

在C#中,我经常在自动生成的代码中看到global:: 。 这不是我曾经用过的东西,所以我不知道它的目的是什么。 有人可以解释这个吗?

共享AssemblyInfo,用于整个解决scheme的统一版本控制

我读过这个技术: http : //blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx 基本上,它意味着创build一个SharedAssemblyInfo.cs与有关程序集的版本信息,并将该文件作为链接添加到解决scheme的所有项目,所以实际文件只驻留在磁盘上的一个位置。 我的问题涉及两种情况: 现有的解决scheme,不使用这种机制:有没有办法轻松地将ShareAssemblyInfo添加到所有项目? (可以说我有50个项目的解决scheme)。 在创build新项目时,默认情况下会创build一个新的AssemblyInfo.cs。 不过,我想自动链接到SharedAssemblyInfo。 有没有解决scheme? 常用的做法是什么?

C ++库的目录结构

我正在研究C ++库。 最终,我想将其公开提供给多个平台(至lessLinux和Windows),以及一些示例和Python绑定。 工作进展很好,但目前这个项目相当混乱,完全是为了Visual C ++而build立的,而不是多平台的。 所以,我觉得一个清理是为了。 我想改善的第一件事是项目的目录结构。 我想创build一个适用于Automake工具的结构,以便在多个平台上轻松编译,但是我以前从未使用过这些结构。 由于我仍将在Visual Studio中完成(大部分)编码,所以我需要在某处保留我的Visual Studio项目和解决scheme文件。 我试图谷歌的条款,如“C ++库目录结构”,但似乎没有用。 我发现了一些非常基本的指导方针,但没有明确的解决scheme 在查看一些开源库时,我想出了以下内容: \mylib \mylib <source files, read somewhere to avoid 'src' directory> \include? or just mix .cpp and .h \bin <compiled examples, where to put the sources?> \python <Python bindings stuff> \lib <compiled library> \projects <VC++ project files, .sln goes in […]

为什么NullReferenceException不包含有关什么是null的信息?

NullReferenceException后面的devise决定是否包含除基类数据(如堆栈跟踪)之外的任何运行时特定信息? 有没有Visual Studio的扩展,可以直接告诉你expression式的哪一部分是空的?

ILookup接口与IDictionary

ILookup<key, value>接口如何与IDictionary<key, value> ? 我不明白ILookup接口是什么意思。

创build一个类的实例

第1,2,3,4行有什么区别? 我什么时候使用每个? 为什么第3行打印constructor Foo和第7行返回一个错误,第8行不? #include <iostream> using namespace std; class Foo { public: Foo ( ) { cout << "constructor Foo\n"; } }; class Bar { public: Bar ( Foo ) { cout << "constructor Bar\n"; } }; int main() { /* 1 */ Foo* foo1 = new Foo (); /* 2 */ Foo* foo2 […]