一、bind
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
功能:如果该函数在服务器端调用,则表示将参数1相关 的文件描述符文件与参数2 指定的接口地址关联,用于从该接口接受数据。 如果该函数在客户端调用,则表示要将数据从参数1所在的描述符中取出并从参数2所在的接口设备上发送出去。
注意:
如果是客户端,则该函数可以省略,由默认接口发送数据。
sockfd 之前通过socket函数创建的文件描述符,套接字id
my_addr 是物理接口的结构体指针。表示该接口的信息。
struct sockaddr ----------通用地址结构 --- ip + 端口
ifconfig ------------查看网卡相关信息 --- 包含ip地址
二、tcp服务器
在建立时,客户端与服务器,进行了3次互相访问:
客户端------------>服务器----------->客户端-------------->服务器
在断开连接时,tcp四次回收:
客户端------>服务器---------->客户端 -------------- \
服务器----------->客户端 --------------/ 服务器
connect
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
功能:该函数固定有客户端使用,表示从当前主机向目标主机发起链接请求。
参数:sockfd 本地socket创建的套接子id
addr 远程目标主机的地址信息。
addrlen: 参数2的长度。
tcp实现双向通信