腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
Linux
TCP
阻塞
套接字使用EAGAIN返回零
sockets
、
tcp
我有一个
阻塞
的
TCP
套接字作为在C++中实现的
TCP
客户端的一部分。它试图使用套接字描述符上的::read()调用读取数据。我经常看到这样的情况,即读取返回值为0,但errno的值为EAGAIN。在
阻塞
套接字的情况下,EAGAIN的意思是什么?我理解这可能是因为触发了读超时,但我目前还没有
设置
读超时值。在
linux
TCP
套接字情况下,默认的读取超时值是多少?
浏览 3
提问于2022-03-07
得票数 0
回答已采纳
2
回答
Linux
,C: IPv6套接字:写入块
c
、
linux
、
sockets
、
tcp
、
ipv6
Serve: socket监听loal
TCP
端口,并使用select()处理新的连接和数据;可以成功建立连接。但是,当写入()数据时,缓冲区大小为128K,它将在write()中
阻塞
。 因为我需要写很多数据,所以我有一个for循环来调用write()。有时,write()会成功一两次,但随后会再次
阻塞
。
浏览 12
提问于2015-09-04
得票数 1
3
回答
C语言中的
非
阻塞
udp套接字编程:我得到了什么?
sockets
、
tcp
、
udp
、
blocking
、
nonblocking
我在理解哪些recv()/recvfrom()从
非
块UDP套接字返回方面有问题。更具体一些,与
TCP
相比(如果我错了,请纠正我):
阻塞
套接字(
TCP
或UDP)在缓冲区中有数据之前不会从recv()返回。这可能是一些字节(
TCP
)或一个完整的数据报(UDP)。
非
阻塞
的套接字要么返回EWOULDBLOCK (
linux
) / WSAEWOULDBLOCK (windows),要么返回当前在缓冲区中的字节。由于
TCP</e
浏览 6
提问于2010-02-10
得票数 10
回答已采纳
2
回答
如果由于缓冲区已满错误导致发送失败,是否可以增加套接字发送缓冲区大小
sockets
如果
TCP
套接字
设置
为
非
阻塞
模式,并且最初
设置
了套接字发送缓冲区,则在循环中使用发送来发送所有数据。如果由于EAGAIN错误导致发送失败,是否可以增加发送套接字缓冲区?我使用的是
Linux
操作系统。在
tcp
上,“在各个连接上,必须在listen(2)或connect(2)调用之前
设置
套接字缓冲区大小,才能使其生效。”这就是为什么这个问题出现了。
浏览 4
提问于2012-10-05
得票数 2
回答已采纳
2
回答
TCP
CLOSE_WAIT状态。与新连接
linux
、
sockets
、
tcp
我在一个众所周知的
TCP
端口上有一个服务器,它连接着一群客户端。客户端使用
非
阻塞
选项连接到服务器。实际的修复可能是在服务器死后关闭套接字。但我正在努力理解当前的行为..。为什么即使
非
阻塞
选项被
设置
了? 这在
Linux
2.6.3x内核中可以看到。
浏览 4
提问于2012-01-12
得票数 0
回答已采纳
3
回答
如何从perl套接字生成
非
阻塞
recv
perl
、
sockets
当在
TCP
套接字上进行recv调用时,如果发现recv调用是
阻塞
的,即使套接字本身是在
非
阻塞
模式下
设置
的,那么如何在perl套接字上实现
非
阻塞
recv?
浏览 1
提问于2010-06-18
得票数 4
回答已采纳
2
回答
读取许多真正的文件描述符
c
、
select
、
epoll
在
Linux
(Ubuntu)应用程序上工作。我需要以一种
非
阻塞
的方式阅读许多文件。不幸的是,epoll不支持真正的文件描述符(文件描述符来自文件),它确实支持网络套接字的文件描述符。select确实在实际的文件描述符上工作,但是它有两个缺点: 1)它速度慢,线性地遍历所有
设置
的文件描述符;2)它是有限的,它通常不允许超过1024个文件描述符。我可以更改每个文件描述符为
非
阻塞
,并使用
非
阻塞
“读”轮询,但这是非常昂贵的,特别是当有大量的文件描述符。 这里
浏览 2
提问于2015-04-25
得票数 1
2
回答
使用epoll的
非
阻塞
tcp
连接
linux
、
tcp
、
epoll
我的
linux
应用程序正在执行
非
阻塞
TCP
connect syscall,然后使用epoll_wait来检测三次握手完成。有时,epoll_wait会返回为同一套接字描述符
设置
的POLLOUT和POLLERR事件。 我想了解一下
TCP
级别上发生了什么。我不能按需复制它。
浏览 0
提问于2010-05-20
得票数 5
2
回答
不轮询读取多条UDP消息
c
、
linux
、
sockets
、
multicast
、
recvmmsg
当我读取
TCP
数据时,我通常使用带有
非
阻塞
套接字(和超时)的poll/select,以便在准备读取时得到通知。我遵循这一方法,因为我意识到虚假唤醒的问题和有
阻塞
套接字的潜在问题。因此,我的两个问题如下: 使用UDP时,我可以安全地使用没有recvmmsg的poll/select从
阻塞
套接字读取,还是必须应用与
TCP
(
非
阻塞
+轮询)相同的原则?假设我有大量的多播通信,您会选择
非
阻塞
套接字+ r
浏览 3
提问于2015-08-21
得票数 1
2
回答
读取
非
阻塞
Python套接字的超时值是多少?
python
、
sockets
、
networking
、
tcp
、
timeout
它在
非
阻塞
模式下
设置
套接字:self._socket.settimeout(0) 我的问题是,当进行读取时,是什么决定了套接字上的超时?它是否是操作系统上
TCP
堆栈使用的缺省值?如果是的话,在
Linux
上如何更改呢?此外,写入超时是否与读取超时相同?
浏览 0
提问于2015-06-30
得票数 1
3
回答
TCP
发送队列深度
tcp
、
network-programming
如何发现已发送到
TCP
套接字但尚未上线的字节数?我想知道类别2、3和4的总和,或者3和4的总和。这是用C(++)编写的,在Windows和
Linux
上都有。
浏览 0
提问于2008-09-19
得票数 1
1
回答
POLLOUT时,轮询函数始终返回零
c
、
sockets
我正在写一个线程,需要处理5个不同的
TCP
端口(读和写)。为此,我创建了5个sockect,如下所示(只有PORT不同):memset(&addr_
tcp
, 0, sizeof(addr_
tcp
)); addr_
tcp
.
浏览 1
提问于2015-07-08
得票数 0
1
回答
Tru64上的sendto返回ENOBUF
linux
、
unix
、
sockets
下面的代码给出了我如何
设置
端口和使用sendto函数的代码片段。我们已经将此应用程序移植到
Linux
上,问题似乎没有出现在那里。问候
浏览 2
提问于2010-05-11
得票数 2
1
回答
如何实现socket的双向通信
sockets
、
tcp
、
udp
我想在
linux
中使用
TCP
和UDP套接字进行双向通信。这个想法如下所示。这是一种传感器网络。服务器端(1)检查是否有
TCP
控制报文传入,如果有,根据控制报文更新系统)while (一旦它接收到100个UDP消息,它就必须向服务器发送
TCP
控制消息第(1)部分是我唯一不能解决的地方。我发现如果在短时间内在(1)部分使用带有select()的
非
阻塞
TCP
套接字,系统很快
浏览 2
提问于2014-04-26
得票数 0
2
回答
UDP
非
阻塞
写入失败
c
、
sockets
、
network-programming
、
udp
、
nonblocking
我在
非
阻塞
TCP
中工作过,在
非
阻塞
情况下,读写都可能失败。如果没有可用的数据,
TCP
非
阻塞
读取就会失败;如果对等方的
TCP
缓冲区已满,则
TCP
写入可能会失败(希望
TCP
缓冲区大小为64K)。我认为在UDP编写中不会出现任何
非
块错误。因为
TCP
写发送数据并等待来自另一方的ACK。但是这不是UDP写的情况,它只会发送和输出,它不会等待来自对等方的任何ACK。我对UDP
浏览 2
提问于2013-11-25
得票数 1
回答已采纳
1
回答
在c代码的
非
阻塞
设计中选择
c
、
tcp
、
network-programming
在史蒂文斯等人的Unix网络编程中,使用select调用的代码演示了
非
阻塞
套接字。通常在
阻塞
文件描述符之间进行选择的调用。我的理解是,
非
阻塞
设计正是select的另一种选择:我的代码可以循环检查
非
阻塞
描述符,并在此基础上执行其他操作,而不是在select调用中被
阻塞
。是我的理解错了,还是select调用有什么神秘之处,使得它在
非
阻塞
设计中不可避免? 从实际情况来看,我需要使用大量的
tcp
套接字,在每
浏览 7
提问于2013-07-12
得票数 0
回答已采纳
1
回答
检测
非
阻塞
套接字中的空闲连接
c
、
sockets
、
linux-kernel
、
network-programming
、
nonblocking
我正在编写一个
TCP
服务器,它使用
非
阻塞
套接字和epoll()来进行I/O复用。我希望检测空闲连接,以便能够关闭它们。我不能在RCVTIMEO中使用setsockopt,因为套接字不
阻塞
。我们如何在
非
阻塞
套接字上
设置
超时?这是有关我的另一个问题:,如果不确定的帖子,请告诉我,我会删除这个或另一个问题。
浏览 1
提问于2018-08-10
得票数 1
回答已采纳
2
回答
使boost::asio::ip::
tcp
::acceptor
非
阻塞
c++
、
sockets
、
boost-asio
、
nonblocking
我一直在尝试使用
tcp
::acceptor创建一种
非
阻塞
的
TCP
服务器。我以前使用过BSD套接字和C(++),但无法使用boost
设置
非
阻塞
I/O。
浏览 0
提问于2011-02-24
得票数 1
回答已采纳
4
回答
Clojure: luminus框架的默认服务器是什么?
http
、
clojure
、
luminus
现在(2018年),当您使用默认
设置
设置
luminus模板项目时,http/
tcp
服务器使用的是什么? 我在读到,鲁米努斯使用的是不变的,然而,
非
突变是其他东西的集合。如果是,对于
非
阻塞
IO,默认
设置
是如何执行的?该服务器是否提供像nginx/nodejs这样的
非
阻塞
事件循环体系结构?
浏览 2
提问于2018-05-16
得票数 4
回答已采纳
1
回答
伯克利套接字中的MSG_WAITALL机制
sockets
在伯克利套接字中,recv函数是否
设置
了MSG_WAITALL标志,替换了多个读取函数,直到读取了所请求的全部数据?
浏览 4
提问于2014-03-25
得票数 0
回答已采纳
点击加载更多
相关
资讯
从linux源码看socket的阻塞和非阻塞
Java NIO-阻塞和非阻塞
linux非阻塞的socket发送数据出现EAGAIN错误的处理方法
异步非阻塞爬虫:tornado
聊聊非阻塞I/O编程
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券