gpt4 book ai didi

c# - 在此示例中,何时调用 ReadCallBack?

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:07 24 4
gpt4 key购买 nike

我在理解 .net 中的异步套接字通信模型时遇到了一些噩梦。有人可以告诉我什么时候调用 ReadCallBack 方法(我正在使用异步服务器监听端口)(如果需要,下面的 MS 链接可获取完整代码)

//handler is my server socket handler
handler.BeginReceive( state.buffer, 0, StateObject.BufferSize,
0,new AsyncCallback(ReadCallback), state);

即当它*完成*接收数据时或当它*检测到*有数据传入时。换句话说,当 ReadCallBack 确实被调用时,它如何知道数据不再到达?如果数据不断到达,ReadCallBack 会继续被调用吗?我的意思是它不像我的客户发送类似“\n”分隔符的东西,所以我如何检查 readcallback 方法在一行中发送了什么?我的客户端实际上每 10 秒发送一次 ping(iAmAlive ping),除了在第一次连接时发送一条“hello_My name is”消息。

谢谢

这是我试图理解的例子Microsoft Async Server socket example

最佳答案

如果您告诉回调,则回调知道不再有数据到达。您可以使用状态对象来做到这一点。如果您检查您在 ReadCallback() 中链接的示例方法检查状态对象的 sb 属性(即接收到的字符串)。如果包含"<EOF>"它失败并通过调用 EndInvoke 结束回调在幕后。只要 sb 不包含 "<EOF>"回调继续尝试读取。

关于c# - 在此示例中,何时调用 ReadCallBack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com