gpt4 book ai didi

c - solaris 中套接字错误 EINPROGRESS 的可能原因是什么?

转载 作者:可可西里 更新时间:2023-11-01 02:31:29 26 4
gpt4 key购买 nike

在 Solaris 中出现套接字错误 EINPROGRESS 的可能原因是什么?我们如何检查根本原因?

tcp api 是:连接

最佳答案

你有一个非阻塞套接字,你正在其中调用 connect()。由于 connect() 需要发生 3 次握手(因此网络往返),它要么在阻塞套接字中阻塞等待 SYN-ACK,要么给你一些它没有成功的指示但在非阻塞套接字中。通常,非阻塞套接字返回 EAGAIN/EWOULDBLOCK 告诉你他们不能前进,你应该再试一次:这不是你的情况, connect() 返回 EAGAIN/EWOULDBLOCK 当没有免费的临时端口告诉你应该稍后再试;所以非阻塞连接还有另一个错误:EINPROGRESS,它告诉你操作正在进行中,你应该稍后检查它的状态。

要稍后检查状态,套接字将准备好写入,因此您可以使用 select()/poll()/... 进行测试,之后您将必须 getsockopt(...SO_ERROR...) 以获取 connect() 操作的成功/失败状态。

关于c - solaris 中套接字错误 EINPROGRESS 的可能原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com