PR_Connect¶
在指定的套接字上发起连接。
语法¶
#include <prio.h>
PRStatus PR_Connect(
PRFileDesc *fd,
const PRNetAddr *addr,
PRIntervalTime timeout);
参数¶
该函数具有以下参数
fd
指向一个表示套接字的 PRFileDesc 对象的指针。
addr
指向要连接到的对等方的地址的指针。
timeout
类型为 PRIntervalTime 的值,指定连接操作完成的时间限制。
返回值¶
该函数返回以下值之一
如果连接设置成功完成,则返回
PR_SUCCESS
。如果失败,则返回
PR_FAILURE
。可以通过调用 PR_GetError 获取更多信息。
描述¶
PR_Connect 通常在 TCP 套接字上调用,但也可以在 UDP 套接字上调用。这里讨论这两种情况。
如果套接字是 TCP 套接字,则 PR_Connect 会建立到对等方的 TCP 连接。如果套接字未绑定,它将绑定到任意本地地址。
PR_Connect 会阻塞,直到连接成功建立或发生错误。该函数使用提供的超时和操作系统连接超时中的较小值。特别是,如果您将 PR_INTERVAL_NO_TIMEOUT
指定为超时,则将使用操作系统的连接时间限制。
如果套接字是 UDP 套接字,则无需进行连接设置,因为 UDP 是无连接的。如果在 UDP 套接字上调用 PR_Connect,它具有重载含义:PR_Connect 仅将指定的地址保存为套接字的默认对等方地址,以便随后可以使用 PR_Send 和 PR_Recv 而不是通常的 PR_SendTo 和 PR_RecvFrom 从套接字发送和接收数据报。