腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(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
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
从linux源码看socket的阻塞和非阻塞
linux非阻塞的socket发送数据出现EAGAIN错误的处理方法
网络编程基础漫谈(二)之 socket 的阻塞模式和非阻塞模式
高并发情况下Linux系统及kernel参数优化
高性能Swoole扩展的安装与使用入门
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券