socket-connect
来源:互联网 发布:中央空调 知乎 编辑:程序博客网 时间:2024/05/16 07:46
摘要:网络编程socket api存在一批核心接口,而这一批核心接口就是几个看似简单的函数,尽管实际上这些函数没有一个是简单。connect函数就是这些核心接口的一个函数,它完成主动连接的过程。
connect函数的功能是完成一个有连接协议的连接过程,对于TCP来说就是那个三路握手过程,它的函数原型:
#include<sys/socket.h>int connect(int sockfd,const struct sockaddr* server_addr, socklen_t addrlen) 返回:0──成功,-1──失败。
为了理解connect函数,我们需要对connect函数的功能进行介绍。connect函数的功能可以用一句话来概括,就是完成面向连接的协议的连接过程,它是主要连接的。面向连接的协议,在建立连接的时候总会有一方先发送数据,那么谁调用了connect谁就是先发送数据的一方。如此理解connect三个参数是容易了,我必需指定数据发送的地址,同时也必需指定数据从哪里发送,这正好是connect的前两个参数,而第三个参数是为第二个参数服务的。
- 参数sockfd
- 指定数据发送的套接字,解决从哪里发送的问题。内核需要维护大量IO通道,所以用户必需通过这个参数告诉内核从哪个IO通道,此处就是从哪个socket接口中发送数据。sockfd是先前socket返回的值。
- 参数server_addr
- 指定数据发送的目的地,也就是服务器端的地址。这里服务器是针对connect说的,因为connect是主动连接的一方调用的,所以相应的要存在一个被连接的一方,被动连接的一方需要调用listen以接受connect的连接请求,如此被动连接的一方就是服务器了。
- 参数addrlen
- 指定server_addr结构体的长度。我们知道系统中存在大量的地址结构,但socket接口只是通过一个统一的结构来指定参数类型,所以需要指定一个长度,以使内核在进行参数复制的时候有个有个界限。
与所有的socket网络接口一样,connect总会在某个时候可能失败,此时它会返回-1,相应的errno会被设置,用户可能通过这个值确定是哪个错误。常见的错误有对方主机不可达或者超时错误,也可以是对方主机没有相应的进程在对应端口等待。
- socket-connect
- socket-connect
- socket-connect
- socket connect函数理解
- socket函数、connect函数、
- socket connect的问题
- socket编程中的connect
- socket connect的问题
- Linux socket connect
- socket 超时connect
- socket之异步connect
- win32 socket connect timeout
- socket非阻塞connect
- socket connect的问题
- Socket Connect问题
- socket connect函数理解
- 非阻塞socket-connect
- socket connect函数理解
- socket-accept
- 在多个网卡的机器上利用socket进行网络测试的问题
- 转:最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- .NET中英文转换的实现
- mysql text和blob比较
- socket-connect
- CISCO NTP服务的配置
- ConditionVariable的简介和用法
- Core Java笔记—第2章 Java程序设计环境
- oracle查询锁表解锁语句
- Ubuntu访问Samba服务器的方法
- Asp.net Gridview 导出到Excel【解决编码乱码问题】
- mysql命令查询表的个数
- 13、设计一个算法,找出二叉树上任意两个结点的最近共同父结点。