我想知道C#数组是否具有恒定的访问速度?
我需要在静态数组中存储1000个项目,这些项目将在服务器启动期间初始化.此数组将以只读方式使用,因此不会对数组进行任何更改.
我应该使用简单的C#数组(新的MyClass [])或字典.
我是C#的新手,并试图了解C#数组访问是如何工作的.
它们可以通过速度与c ++数组进行比较吗?
我有点困惑如何在从服务器向客户端传输加密消息时以正确的方式使用AES和HMAC(基于SHA-256),反之亦然
如果以下方法错误,请纠正我:
最大的问题是:是否有可能不以某种方式将IV发送给客户端,而是以相同的方式生成它并且仍然是加密安全的?或者也可以发送IV吗?
我最终得到随机IV生成,因为需要相同的纯文本将以不同的加密结果结束.
谁能帮助我回答有关epoll_wait的问题.
使用许多线程在相同的fds集上调用epoll_wait以服务于大约100K活动套接字是否过度?或者仅仅创建一个线程来执行epoll_wait就足够了?
例如,只有一个套接字准备好读取数据时,epoll_wait会唤醒多少个线程?我的意思是,有两个或更多线程从epoll_wait唤醒但在结果事件中会有相同的fds的情况吗?
在服务器中组织线程的最佳方法是什么,它适用于许多活动客户端(例如50K +).我认为最好的方法是:1个I/O工作线程,它可以执行epoll_wait和i/o操作.+ 许多数据处理线程将处理从I/O工作线程接收的数据(可能需要很长时间,例如任何游戏逻辑)并为I/O工作线程编写新数据以发送给客户端.我是对的,或者任何人都可以帮助我找出组织这种方法的最佳方法吗?
在此先感谢,Valentin
我在生产服务器上有一个奇怪的情况.
我们有在C++上编写的网络应用程序,它通过使用IOCP编写的TCP为用户提供请求.
两天前,我们更新了Windows 2012 R2(它安装了最新的安全更新.之前的更新是在6个月前).在尝试停止服务的更新后,我们在日志中看到服务器在调用时挂起关闭侦听套接字
closesocket(session->listen_socket);
Run Code Online (Sandbox Code Playgroud)
停止网络系统的模式是下一个:
PostQueuedCompletionStatus(m_completion_port, 0, NULL, NULL); x工作线程数
等待所有工作线程完成他们的工作
CloseHandle(m_completion_port);
closesocket(session->accept_socket);
closesocket(session->listen_socket);
这在过去4年中表现良好,但在Windows 2012 R2更新后突然停止服务器永久挂起 closesocket(session->listen_socket);
我已经尝试作为一个解决方案来设置LINGER选项,0超时以使得关闭,但它没有帮助.
所有想法如何解决这个问题或进行任何其他诊断?
我的服务器代码中有很多HTTPHandler.
如何在Live中监控我的Web服务器的性能?
我需要下一个统计信息:
1.每秒请求数(每个处理程序或摘要)
2.CPU使用率
提前致谢
使用AcceptEx直接调用或使用WSAIoctl获取的函数指针有什么区别.
MSDN并未完全涵盖有关性能问题以及使用AcceptEx作为直接调用可能遇到的其他问题的问题.
还有一个问题是:如果我的程序中有4个侦听套接字,我是否需要为每个侦听套接字调用WSAIoctl,当然还要为每个套接字存储函数指针?或者它足以为任何套接字调用一次,而不是与其他套接字一起使用.
预先感谢.
我知道TCP提供类似流的数据传输,但主要问题是 - 通过TCP发送数据时会出现什么情况?
1.可以将消息拆分为N个块以适合MTU大小.
2.在1次recv调用中可以读取两条消息.
可以有下一个情况吗?
MTU例如1500字节.
客户端调用以1498字节数据发送.
客户端调用以100字节数据发送.
服务器调用recv并接收1500字节数据.
服务器调用recv并接收98字节数据.
因此,当第一个服务器recv中将收到来自第二个客户端发送的2个字节时,它最终会出现这种情况.
我的协议定义为foolows:
4个字节 - 数据长度
数据内容.
我想知道当4个字节(数据长度)被分成2个块时我能想出什么情况吗?
我需要用MongoDB集合实现FIFO逻辑:
集合中的文档除了自动生成的_id(ObjectId)之外没有任何索引.
我想知道,是否有可能从集合中找到并删除第一个文档并保证推送和弹出操作将以原子方式执行FIFO堆栈?
我知道可以使用原子推送和弹出操作来处理文档中的数组,但主要问题是如果我将所有数据存储在1个文档的数组中,它的大小将超过16MB(MongoDB允许的最大大小)文献)
在此先感谢,Valentin
c++ ×3
sockets ×3
aes ×1
arrays ×1
asp.net ×1
c# ×1
cryptography ×1
epoll ×1
hmac ×1
iocp ×1
linux ×1
live ×1
mongodb ×1
monitor ×1
networking ×1
optimization ×1
performance ×1
stack ×1
tcp ×1
windows ×1