一 服务器端
#include
#include
#include
#include "tpipv6.h"
//所需库连接
#pragma comment (lib,"Ws2_32.lib")
void main()
{
WSADATA wsaData;//版本协商
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
cout<
return ;
}
SOCKET server_sock, client_sock;//服务器端和客户端套接字
//addrinfo结构体是为了消除IPv6协议与IPv4协议之间的差异,编制统一的程序而追加的结构。并且允许多个IPv4地址或IPv6地址链成链表
struct addrinfo server_addr , //服务器端地址信息
*res=NULL; //若有多个地址,res是地址信息链表指针
memset(&server_addr,0,sizeof(server_addr));//如果没有这句话就会出现绑定错误,也就是在调用getaddrinfo()之前该参数必须清0
server_addr.ai_family = AF_INET6;//地址簇,这里指定是ipv6协议,其值可以是AF_INET:ipv4, AF_INET6:ipv6
server_addr.ai_socktype = SOCK_STREAM;//套接字类型,这里是流式,其值可以是SOCK_STREAM:流式, SOCK_DGRAM:数据报, SOCK_RAW:原始套接字
server_addr.ai_pro