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_SendPR_Recv 而不是通常的 PR_SendToPR_RecvFrom 从套接字发送和接收数据报。