假设我们想要这样的 API:
var Listner = new ServerSocket();
Listner.Bind(URL);
Listner.OnData((senderClient, ClientDataStream) => {/* ... */})
- 我们还希望传递给 OnData 的委托在不影响套接字接收性能的有限多线程任务池中执行。
- 只有当 senderClient 上的当前任务被执行时,新的 senderClient 任务才会进入任务池的末尾。
- 当然,在使用 OnData 时,我们将能够通过套接字将数据写回客户端。
ClientDataStream
length
解析当前帧时,我们无法提供关于 next 的信息。因此ClientDataStream
,应以异步操作的形式提供尽可能多地读取它的能力:
{
byte[] data = ClientDataStream.Read(5).Wait();
/* */
byte[] data = ClientDataStream.Read(someDinamicVarNWeGotFromThatFirstFiveBytes).Wait(); //...
}
在任务等待时,它可能会允许其他任务工作。
.Net 中或某些 OSS 库中是否有这样的智能套接字服务器?