IPV6 connect操作C语言实例
时间: 2023-08-26 09:03:59 浏览: 204
用C语言写PV实例
IPv6的connect操作与IPv4的类似,只是需要使用IPv6地址结构体`struct sockaddr_in6`。以下是一个简单的IPv6 connect操作的C语言示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char *argv[]) {
int sockfd;
struct sockaddr_in6 servaddr;
char *ip = "::1"; // 目标IPv6地址
// 创建套接字
sockfd = socket(AF_INET6, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket creation failed");
exit(EXIT_FAILURE);
}
// 设置目标地址
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin6_family = AF_INET6;
servaddr.sin6_port = htons(8080);
if (inet_pton(AF_INET6, ip, &servaddr.sin6_addr) <= 0) {
perror("invalid address");
exit(EXIT_FAILURE);
}
// 连接到目标地址
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) {
perror("connection failed");
exit(EXIT_FAILURE);
}
printf("Connected to server!\n");
// 关闭套接字
close(sockfd);
return 0;
}
```
在这个例子中,我们创建了一个IPv6 TCP套接字,设置了要连接的目标地址为loopback地址("::1"),然后调用connect()函数连接到该地址。如果连接成功,程序输出"Connected to server!"。最后,我们关闭了套接字。
阅读全文