客户端本地搭建
connect函数
主要用于客户端套接字向服务器发起连接请求。
头文件
#include <sys/socket.h>
#include <arpa/inet.h>
函数原型
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
参数解释
sockfd
:客户端文件描述符。
addr
:连接服务器的地址。
addrlen
:地址长度。
返回值
成功:若 connect
函数成功建立连接,会返回 0
。
失败:若连接失败,会返回 -1
,同时会设置 errno
来表明具体的错误原因。
示例
#include <iostream>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>using namespace std;using namespace std;int main()
{struct sockaddr_in addr;int length;// 1、创建socketint socketfd = socket(AF_INET, SOCK_STREAM, 0);if (socketfd < 0){/*可能情况*1、没有连接网络*2、网卡坏了*/perror("socket error");return 0;}addr.sin_family = AF_INET; // 指定地址协议为IPV4类型addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 因为都在本地,所以要用回环地址addr.sin_port = htons(10001); // 服务器的端口号length = sizeof(addr); // 2、连接服务端int res = connect(socketfd, (struct sockaddr*)&addr, length);if (res < 0){perror("connect error");return 0;}cout << "成功连接到服务端,clientfd=" << socketfd << endl;return 0;
}