cost 80 ms
使用重叠/异步 i/o 读取名为 Pipe

[英]Reading named Pipe using overlapped/asynchronous i/o

我有一个来自服务的真正旧代码,该服务在消息模式 ( PIPE_TYPE_MESSAGE ) 中使用具有重叠 i/o ( FILE_FLAG_OVERLAPPED ) 的命名命名管道。 该代码执行以下操作: ReadFile用于 4 个字节,具有重叠的 i/o(标头 + 消息长度)。 客户端通过一 ...

UDP服务器CPU占用高

[英]UDP server consuming high CPU

我在我的 UDP 服务器实现中观察到高 CPU 使用率,该实现运行一个无限循环,期望每毫秒有 15 个 1.5KB 数据包。 如下所示: 这个 udp 服务器的 CPU 消耗非常高,即使在接收后没有处理数据包。 这里如何提高cpu消耗? ...

在 Windows 中的另一个线程上异步启动和取消 I/O 的无竞争方式

[英]Race-free way to asynchronously start AND cancel I/O on another thread in Windows

背景:一般来说,如果我们想强制一个操作异步发生(避免阻塞主线程),使用FILE_FLAG_OVERLAPPED是不够的,因为操作仍然可以同步完成。 因此,假设为避免这种情况,我们将操作推迟到专用于 I/O 的工作线程。 这样可以避免阻塞主线程。 现在主线程可以使用CancelIoEx(HANDLE, ...

是否可以恢复在挂起的 I/O 操作中使用的已分配的 OVERLAPPED 结构?

[英]Is it possible to recover an allocated OVERLAPPED structure used in a pending I/O operation?

假设您正在使用 I/O 完成端口执行异步操作(如ReadDirectoryChangesW )。 对于每次调用该函数,您分配一个OVERLAPPED结构(可能带有一些附加数据)以在 I/O 完成回调中使用。 然后在回调中,在使用OVERLAPPED结构后,您使用作为参数提供的指针释放内存。 现在让 ...

WSAGetOverlappedResult 不从套接字返回数据

[英]WSAGetOverlappedResult doesn't return data from socket

这是我的代码,我想专注于对WSARecv和WSAGetOverlappedResult的调用: 当我运行程序时,它会侦听连接。 我与netcat连接。 连接后,它按预期打印“接受”。 它还会打印“Running GetOverlappedResult”,但即使我在 netcat 上写了很多乱码,“O ...

在重叠模式下使用 WSASend 时,我应该何时释放缓冲区?

[英]When using WSASend in overlapped mode, when should I free the buffers?

我正在使用WSASend()通过 IOCP 发送一些数据。 我分配一个缓冲区并用要发送的数据填充它,然后创建一个指向我的缓冲区的WSABUF并将其传递给WSASend() 。 文档说: 如果此 function 以重叠方式完成,则 Winsock 服务提供者有责任在此调用返回之前捕获 WSABU ...

为什么 WriteFile 不为该代码中的后续写入提前文件偏移量?

[英]Why is WriteFile not advancing the file offset for subsequent writes in this code?

我创建了一个重叠的 WriteFile 方案,其中一个线程填充环形缓冲区并推进头指针并调用 WriteFile,另一个线程监视来自 OVERLAPPED 写入的事件以推进尾指针。 逻辑按预期运行,但文件大小没有增加,它保持不变,只是从 position 0 覆盖。我通过将增量值写入写入文件的 me ...

Overlapped.AsyncResult 即使在操作成功完成后也不会改变

[英]Overlapped.AsyncResult doesn't change even after operation completed successfully

为了与 HID 设备通信,我使用了 kernel32 中的一些函数。 代码是从 Microchip MLA 定制 HID 设备项目中借用的。 它使用阻塞方法。 我发现我可以使这些方法异步。 这是我尝试进行异步写入的方法://... internal const uint FILE_FLAG_OVE ...

为什么 C# PInvoke 与串行端口重叠 I/O 有时给我全零

[英]Why is C# PInvoke with serial port overlapped I/O sometimes giving me all zeros

我正在 C# 中制作一个简单的 RS-232 测试应用程序。 在遇到 .NET SerialPort问题后,我决定直接调用 Win32 API。 我正在使用重叠 I/O。 它有 70% 的时间都在工作,而其他时候入站数据没有写入缓冲区。 我的测试应用程序以这种方式打开 COM 端口: 注意重叠的标志 ...

可以在短时间内过多的WSASend成为问题吗?

[英]Can too many WSASend in short time be a problem?

我正在用IOCP制作一个简单的mmorpg服务器。 我实现了一个简单的移动功能,所以我测试了虚拟客户端(也是IOCP)。 只有少数客户连接时,一切正常。 在连接大约500~1000个客户端之后,一些虚拟客户端偶尔会读取奇怪的数据。 我检查了服务器按照我的预期发送数据,但是当读取它们的虚拟 ...

从fifo读取时重叠输出:如何修复/避免这种情况?

[英]overlapping output while reading from fifo: how to fix/avoid this?

我正在尝试聚合来自2个文件的数据,因此我决定通过单独的编写器进程将数据发送到命名的fifo,并启动单独的读取器进程来读取和处理聚合数据。 所有的读/写都是在ramdisk(/ dev / shm)上进行的,它大约100 GB左右。 这个工作文件和我确保写入fifo的每条数据行都小于512 ...

在 Python 3.7 中使用和重叠命名管道

[英]Using and Overlapped Named Pipe in Python 3.7

我正在使用带有 Python 3.7 的 Windows,并且我正在尝试在 python 进程之间异步共享数据,任何字符串。 其中一个无限期运行(接收方),另一个可能在任何时候开始发送一些数据然后结束(发送方)。 我正在尝试为此使用命名管道。 当它们同步运行时,我设法得到了这个(接收器在阻塞的管道 ...

停止后恢复完成端口通知

[英]Resume completion port notification after they were stopped

在GetQueuedCompletionStatus的lpOverlapped参数的 MSDN 文档中,据说应用程序可以通过设置OVERLAPPED结构的hEvent成员的低位来阻止完成端口通知。 但是是否可以在停止通知后恢复通知? 我需要使用它来监视网络文件夹的更改: 当GetQueuedCo ...

closesocket之后的Windows套接字完成例程回调

[英]Windows socket completion routine callback after closesocket

当忙于以重叠模式使用Windows套接字并使用完成例程(因此没有IOCP)获取反馈时,我发现了以下奇怪的情况: 使用listen和AcceptEx打开服务器套接字。 使用ConnectEx在该端口上连接客户端套接字 现在,我们(至少)有3个套接字:1个列出套接字,一个客 ...

(MSDN)不断使线程“可更改”而不阻塞线程

[英](MSDN)Make thread “alertable” constantly without blocking the thread

我正在使用异步过程调用(APC)使用ReadFileEx和WriteFileEx进行重叠的I / O请求。 如MSDN中所定义,仅当定义APC的线程处于“可更改”状态时,才处理这些函数的完成例程(APC)。 从例子在这里和那里都使用SleepEx()函数做,以保持线程警惕性SleepEx ...

WSA_WAIT_EVENT_0在重叠的IO中的用途是什么?

[英]What is the purpose of WSA_WAIT_EVENT_0 in overlapped IO?

我在网络方面的所有经验都是在linux上进行的,因此我绝对是Windows联网的初学者。 这可能是一个愚蠢的问题,但我似乎在任何地方都找不到答案。 考虑以下代码片段: 从EventArray选择的事件每当WSA_WAIT_EVENT_0从指数中减去,但WSA_WAIT_EVENT_0 ...

如何在Windows上用C语言将此阻塞的I / O模式转换为重叠的I / O模式?

[英]How do i convert this blocking i/o mode into an overlapped i/o mode in c language on windows?

我正在学习在Windows上的C语言中进行套接字编程和多线程编程。 我设计了一个项目,其中将有三种类型的备份节点(服务器,客户端和存储节点)。 我创建了以下文件,以拥有一台服务器以及多个客户端和存储节点。 服务器需要根据请求服务的客户端类型(是显式普通客户端或存储节点)创建两种线程。 我 ...


 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM