uv_tcp_t — TCP 句柄

TCP句柄用于表示TCP流和服务器

uv_tcp_t是uv_stream_t的子类。

数据类型

uv_tcp_t    TCP句柄类型。

API

int uv_tcp_init(uv_loop_t* loop, uv_tcp_t* handle)

初始化句柄。到目前为止尚未创建套接字。

int uv_tcp_init_ex(uv_loop_t* loop, uv_tcp_t* handle, unsigned int flags)

用指定的标志初始化句柄。目前,只有flags参数的低8位用作套接字域。将为给定的域创建一个套接字。如果指定的域为AF_UNSPECno,则不会创建套接字uv_tcp_init()。

1.7.0版中的新功能。

int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock)

打开一个现有的文件描述符或SOCKET作为TCP句柄。

在版本1.2.1中更改:文件描述符设置为非阻塞模式。

注意    不会检查传递的文件描述符或SOCKET的类型,但是要求它表示一个有效的流套接字。

int uv_tcp_nodelay(uv_tcp_t* handle, int enable)

启用TCP_NODELAY,这将禁用Nagle的算法。

int uv_tcp_keepalive(uv_tcp_t* handle, int enable, unsigned int delay)

启用/禁用TCP保持活动状态。delay是以秒为单位的初始延迟,当使能为零时将被忽略。

int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable)

侦听新的TCP连接时,启用/禁用操作系统排队的同步异步接受请求。

此设置用于调整TCP服务器以获得所需的性能。具有同时接受可以大大提高接受连接的速率(这就是默认情况下启用它的原因),但可能导致多进程设置中的负载分配不均。

int uv_tcp_bind(uv_tcp_t* handle, const struct sockaddr* addr, unsigned int flags)

将句柄绑定到地址和端口。addr应该指向已初始化的struct sockaddr_instruct或者 sockaddr_in6

当端口已被使用,您可能会看到一个UV_EADDRINUSE 错误无论从uv_tcp_bind(),uv_listen()或uv_tcp_connect()。也就是说,对该函数的成功调用并不能保证对该函数的调用uv_listen()或uv_tcp_connect()将成功。

标志可以包含UV_TCP_IPV6ONLY,在这种情况下,将禁用双栈支持,并且仅使用IPv6。

int uv_tcp_getsockname(const uv_tcp_t* handle, struct sockaddr* name, int* namelen)

获取句柄绑定到的当前地址。名称必须指向有效且足够大的内存块,建议用于IPv4和IPv6支持。struct sockaddr_storage

int uv_tcp_getpeername(const uv_tcp_t* handle, struct sockaddr* name, int* namelen)

获取连接到句柄的对等方的地址。名称必须指向有效且足够大的内存块,建议用于IPv4和IPv6支持。struct sockaddr_storage

int uv_tcp_connect(uv_connect_t* req, uv_tcp_t* handle, const struct sockaddr* addr, uv_connect_cb cb)

建立IPv4或IPv6 TCP连接。提供一个初始化的TCP句柄和一个未初始化的uv_connect_t。addr应该指向已初始化的struct sockaddr_in  struct sockaddr_in6

在Windows上,如果addr初始化为指向未指定的地址(0.0.0.0::),它将被更改为指向localhost。这样做是为了匹配Linux系统的行为。

建立连接或发生连接错误时进行回调。

改变版本1.19.0:增加0.0.0.0::localhost 测绘

int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb)

通过发送RST数据包重置TCP连接。这可以通过将SO_LINGER套接字选项设置为零的间隔时间,然后调用来实现uv_close()。由于某些平台不一致,不允许混用uv_shutdown()和 此函数调用。

1.32.0版中的新功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值