29得票2回答
使用SocketAsyncEventArgs时,是否可能在不使用ExecutionContext和线程分配的情况下进行操作?

如果你调试一个使用SocketAsyncEventArgs的简单客户端应用程序,你会注意到Thread和ExecutionContext的分配。 这些分配的源头是SocketAsyncEventArgs.StartOperationCommon,该方法在执行时会使用ExecutionCont...

27得票4回答
Java NIO和NIO.2(JSR203)中的非阻塞和异步IO - 反应器/处理器实现

所以我正在阅读我最喜欢的软件模式书籍之一(Pattern-Oriented Software Architecture - Patterns for Concurrent and Networked Objects),特别是关于Proactor/Reactor异步IO模式的部分。我可以看到如何...

22得票2回答
如何在Android应用程序中处理活动变化并保持客户端与服务器的连接,并将数据发送到服务器?

我最初在我的活动中实现了一个异步任务,用于向服务器发送数据。但当我切换活动时,连接就会丢失。为了解决这个问题,我的方法是实现一个服务来集中处理网络操作并将数据发送到服务器,下面是该服务的代码:import java.io.BufferedWriter; import java.io.Outpu...

21得票1回答
Unix套接字中异步和非阻塞的区别是什么?

我在nginx中看到了这样的代码:if(fcntl(ngx_processes[s].channel[0], F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK) == -1) { ... if (ioctl(ngx_processes[s].channel[0],...

21得票2回答
.NET C#中的高性能TCP套接字编程

我知道这个话题已经被问了很多次,我几乎读了所有的帖子和评论,但我仍然没有找到答案。 我正在开发一个高性能网络库,必须具有TCP服务器和客户端,能够接受30000多个连接,并且吞吐量必须尽可能高。 我非常清楚我必须使用async方法,我已经实现了所有我找到并测试过的解决方案。 在我的基准测...

20得票5回答
C# UDP套接字:获取接收方地址

我有一个异步UDP服务器类,绑定在IPAddress.Any上的套接字,我想知道接收到的数据包被发送到哪个IPAddress(或者在哪个IPAddress上接收到)。看起来我不能仅仅使用Socket.LocalEndPoint属性,因为它总是返回0.0.0.0(这是有道理的,因为它绑定在那里....

20得票2回答
eventlet和gevent之间的性能差异是什么?

这两个库具有相似的哲学和相似的设计决策。但是,这个流行的WSGI基准测试称eventlet比gevent慢得多。是什么造成它们的性能差异如此之大呢? 据我所知,它们之间的主要区别在于: gevent故意依赖于并与libev (libevent, 以前)耦合,而eventlet定义了独立的...

17得票2回答
为什么 System.Threading.OverlappedData 的垃圾回收需要这么长时间?

我正在通过内存分析器运行我的应用程序以检查泄漏。事情似乎还算可以,但是我得到了很多这些OverlappedData,它们似乎挂在终结器队列中无所作为。它们是被取消的重叠IO的结果,由于连接两端下层NetworkStream的关闭而产生。 网络流本身已经被处理。没有任何实例的NetworkSt...

14得票2回答
如何确定一个给定的请求是否正在运行?

我正在研究用于网络层的改装。有没有办法在任何时候告诉我一个特定的异步请求是否正在运行?例如,我想知道请求是否正在运行,以便我可以在不同的时间更新用户界面。我可以通过保留变量来跟踪状态来自己完成这个过程,但想知道库中是否已经有相关功能。

13得票2回答
异步套接字服务器是如何工作的?

我需要说明的是,我现在不是在询问具体的实现细节,而是需要一个整体概述。我理解socket的基本概念,需要对整个过程进行澄清。目前我的(可能非常错误的)理解是: 一个套接字(socket)在自己的线程中不断地监听客户端连接请求,当连接发生时,会引发一个事件,然后将另一个线程分配给执行连接过程。...