Linux上异步socket发送
Asynchronous socket send on Linux
当send在异步套接字上返回EAGAIN时,这是否意味着:当前调用刚刚成功排队,还是因为系统仍在处理先前的发送而没有做任何事情?
提前感谢。
From man 2 send
:
套接字标记为非阻塞,请求的操作将阻塞。POSIX.1-2001允许在这种情况下返回任何一个错误,并且不要求这个常量[EAGAIN EWOULDBLOCK]具有相同的值,因此便携式应用程序应该检查这两种可能性。
所以我认为EAGAIN
的意思是:be careful, the message did not fit into send buffer, this call would be blocked in normal (blocking) mode. Use select(2) to determine whether you can send more data.
注:实际上,看起来调用失败了,什么也没做。
什么也没做。
如果执行了操作,返回值告诉您发送了多少个字符。当您得到返回值-1和errno=EAGAIN时,表示没有发送任何内容。
相关文章:
- 从命令行c++发送文本文件名
- 发送一个带有libcurl C++问题的帖子请求:s
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 如何在C++中将函数发送到另一个进程
- boost xml parsingl将xml的路径作为变量发送
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- 通过 Socket 通过 boost asio 发送和接收 protobuf 数据
- IMAP:从C++程序发送电子邮件时"Unable to create selectable TCP socket"
- Linux服务器,发送文件到windows客户端(Socket)
- 通过TCP socket发送二进制文件
- c++发送和接收socket
- Java客户端和c++服务器通过TCP Socket发送和接收
- c++ socket在断开连接后发送数据
- 通过Socket发送图像(JPEG)
- boost::asio::read防止boost:asio::write向Java Socket发送数据
- 使用socket发送Iplimage
- 如何在c++中使用Socket发送一个目录
- 图像发送通过socket c++服务器端和c#客户端
- 如何在c++中通过boost socket发送ostream
- Linux上异步socket发送