我是否应该在循环中调用WinAPI的发送功能?

2024-09-30 22:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我应该在循环中从WinAPI(https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms740149(v=vs.85).aspx)调用send函数来保证所有数据都已发送(就像Python标准库中类似的send函数)还是像sendall函数一样工作


Tags: 数据函数httpscomsend标准windowsru
1条回答
网友
1楼 · 发布于 2024-09-30 22:26:15

Python和winsockapi都实现了BSD套接字API,因此send函数的工作原理基本相同。所以不,它不是一个方便的sendall,而且太多的代码认为它是

您可以在windows上编写一个简单的sendall函数,方法是在发送时循环,直到成功发送所有字节,但这在GUI应用程序中是个坏主意,因为它会阻止应用程序响应用户,在更复杂的控制台应用程序中,它可能会阻止其他套接字通信

如果这两个都是问题,那么您应该研究WSAAsyncSelect对于GUI应用程序,每当套接字准备好读取或写入时,您的窗口进程将接收窗口消息,或者select,它允许控制台程序/非gui工作线程在最多32个套接字(windows限制)的集合上循环,以测试哪些套接字是可读的或可写的

相关问题 更多 >