- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个简单的 C# 异步客户端,它使用 .NET 套接字等待来自本地 Java 服务器的定时消息,用于自动执行命令。消息异步传入并写入环形缓冲区。此实现似乎在 Windows Vista/7/8 和 OSX 上运行良好,但在从本地 Java 服务器接收消息时会随机抛出此异常:
Unhandled Exception: System.InvalidOperationException: EndReceive can only be called once for each asynchronous operation.
at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult, SocketError& errorCode)
at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
at SocketTest.Controller.RecvAsyncCallback(IAsyncResult ar)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
...
我已在网上查找此错误,但没有找到真正有用的信息。这是它似乎中断的代码:
/// <summary>
/// Callback to receive socket data
/// </summary>
/// <param name="ar">AsyncResult to pass to End</param>
private void RecvAsyncCallback(IAsyncResult ar)
{
// The exception will randomly happen on this call
int bytes = _socket.EndReceive(_recvAsyncResult);
// check for connection closed
if (bytes == 0)
{
return;
}
_ringBuffer.Write(_buffer, 0, bytes);
// Checks buffer
CheckBuffer();
_recvAsyncResult = _sock.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, RecvAsyncCallback, null);
}
错误不会在任何特定时刻发生,除了在接收消息的过程中。消息本身可以是任意长度的,异常可以立即发生,或者有时甚至长达一分钟的完美沟通。
我对套接字和网络通信很陌生,我觉得我可能在这里遗漏了一些东西。我已经在至少 8 台不同的计算机上进行了测试,与抛出此异常的计算机的唯一相似之处是它们的操作系统是 Windows XP 32 位。
最佳答案
你会想关注 the convention shown here .您正在将 IAsyncResult
传递给 Socket.BeginReceive
,它表示上下文中的不同点或完全不同的上下文。
确保在回调中使用调用 EndReceive
时传入的参数。
Windows XP 可能有一个错误修复,这取决于您的服务包和您安装的其他东西,捕捉上下文共享场景或者它可能引入了一个错误,无法正确管理上下文。如果不进行大量测试,很难判断这是否是环境问题。
关于C# TCP Async EndReceive() 仅在 Windows XP 32 位上抛出 InvalidOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19847268/
问题是不言自明的。如果重要的话,我正在为 USB 驱动器命名。 谢谢。 最佳答案 32 characters in NTFS, 11 in FAT. 关于windows-xp - Windows XP
我在我的 macbook(lion os)上使用并行桌面,我想让 xampp/localhost 在我安装的 XP 版本上工作,这样我就可以在 Internet Explorer 中测试我的网站。 显
我将如何创建自己的 XP 打印机驱动程序,它将执行以下操作: 打印到文件(可能是 XPS 格式) 将此文件放入密码 protected ZIP 文件 将 zip 文件通过电子邮件发送到已配置的 电子邮
我记得看过 Mark Russinovich 的网络广播,显示了用户启动的内核转储的键盘按键序列。有人可以按键的确切顺序刷新我的内存。 请注意,这是针对 XP 的。 最佳答案 http://psaca
我父亲找到了一个他非常喜欢的俄语键盘映射here .但是,它是非标准的,因此不会出现在键盘布局选择的语言(控制面板->区域和语言选项->语言->详细信息->文本服务和输入语言->添加)下拉列表中。据我
我想将 Chocolatey 与某些 Windows XP VM 一起使用。不幸的是,Chocolatey 要求告诉我们至少需要 Windows 7。( https://chocolatey.org/
是否有官方的 Windows XP 注册表引用在线某处?我看到 Win 2000 有一个引用和 Win 2003 MS technet 上的服务器,但我似乎找不到适用于 XP 的服务器。是的,我知道
我有一个带有第三方应用程序的四核系统,偶尔会旋转多个进程(始终是相同的可执行文件,但有多个实例)并占用 100% 的 CPU 时间。我还在同一个机器上运行了几个 Web 服务(IIS 和第三方)。 所
我正在寻找“RunOnceEx”的反向版本。 RunOnceEx 确实在用户的 shell(桌面和任务栏)启动之前运行一些程序。在 runonceex 完成之前,登录进度不会继续。 我想做完全相同的事
我有一个程序,我试图在两台计算机上运行。在一台电脑上,它工作正常。但是,在另一台计算机上,它在尝试创建 USB channel 时挂起。我没有能力查看程序内部。确定两台机器之间差异的最佳方法是什么?
Windows XP 绘制带有漂亮阴影的图标文本,这有助于阅读各种背景上的文本。字体颜色为白色,阴影为黑色(如果桌面背景为白色)或根本没有阴影(如果桌面背景为黑色)。 所以有两个子任务: 阴影是如何绘
有没有办法通过批处理脚本在 Windows XP 中创建用户,甚至为其分配管理员/受限用户值? 最佳答案 假设用户名是 rased 密码是 pAsS net user rased pAsS /add
我正在寻找使用 SP2 或 winsock 在 XP 上访问 A2DP、AVRCP、MAP、HFP 等蓝牙配置文件的供应商独立方式。 我正在最终确定为蓝牙创建应用程序的方法。 除了服务发现之外,我还需
我想通过 Windows 代码包将 Direct2D 用于我的 .Net 应用程序。由于我的一些用户使用 XP,我需要提供 GDI+ 后备。我想知道人们通常如何进行这种后备。 他们是否将所有必要的图形
根据 Microsoft 文档,直到 Windows Vista,InterlockedCompareExchange64 才可用作 Windows API 调用。见 http://msdn.micr
计算机管理 -> 服务和应用程序 -> 消息队列 如何从特定队列中删除消息? 在我看来有一些方法,但我现在找不到。 最佳答案 嗯,不可能通过 MMC 删除有害消息。 你可以试试QueueExplore
Windows XP 中存储的用户帐户图标/图片在哪里? (显示在非经典登录屏幕和开始菜单上的那些。) 最佳答案 C:\Document and Settings\All Users\Applicat
在 WinXP 上安装时,出现以下错误 在 Win7 应用程序上安装没有问题。 Windows 窗体应用程序和 WPF 应用程序都存在相同的问题,并且在 VS 2010 之前它们都可以正常工作。 最佳
是否可以在 Windows XP 上的 Visual Studio 中使用/引用 Microsoft.Web.Administration?我知道,在 XP 上安装 IIS 7 是不可能的,但我(必须
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!