69,368
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<winsock2.h>
#include<ws2tcpip.h>
//在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库
#pragma comment(lib, "WS2_32.LIB")
int main(int argc, char* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
printf("WSAStartup failed.\n");
system("pause");
return -1;
}
if (LOBYTE(wsaData.wVersion) != 1||
HIBYTE(wsaData.wVersion) != 1) {
WSACleanup();
printf("LOBYTE or HIBYTE failed.\n");
system("pause");
return -2;
}
//创建套接字//
addrinfo hints;
addrinfo *res;
memset(&hints, 0, sizeof(hints));
hints.ai_family=AF_INET6;
//hints.ai_family = PF_INET6;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
hints.ai_flags = AI_NUMERICHOST;
getaddrinfo("fe80::706d:5cb0:fcac:7141", "7999", &hints, &res);
//getaddrinfo(NULL, "8700", &hints, &res);
SOCKET s;
s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if(s == INVALID_SOCKET)
{
WSACleanup();
printf("Create socket failed.\n");
system("pause");
return -3;
}
//绑定套接口
err = bind(s, res->ai_addr, res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Bind socket failed.\n");
system("pause");
return -4;
}
//发送消息
char buf[]="Hello, my name is zhcosin.";
err = sendto(s, buf, strlen(buf), 0, res->ai_addr, res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Send failed.\n");
system("pause");
return -5;
}
closesocket(s);
system("pause");
}
#include<stdio.h>
#include<winsock2.h>
#include<ws2tcpip.h>
//在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库
#pragma comment(lib, "WS2_32.LIB")
int main(int argc, char* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
//启动 winsockAPI
wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
printf("WSAStartup failed.\n");
system("pause");
return -1;
}
if (LOBYTE(wsaData.wVersion) != 1||
HIBYTE(wsaData.wVersion) != 1) {
WSACleanup();
printf("LOBYTE or HIBYTE failed.\n");
system("pause");
return -2;
}
//创建套接字
addrinfo hints;
addrinfo *res;
addrinfo *curinfo;
memset(&hints, 0, sizeof(hints));
//hints.ai_family = AF_INET6;
hints.ai_family = PF_INET6;
hints.ai_socktype = SOCK_DGRAM;
//hints.ai_protocol = IPPROTO_UDP;
hints.ai_flags = AI_NUMERICHOST;
//hints.ai_flags = AI_PASSIVE;
getaddrinfo("::0", "7999", &hints, &res);
getaddrinfo("fe80::2c42:6fb2:a162:85ed%10", "7999", &hints, &curinfo);
SOCKET s;
//s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
if(s == INVALID_SOCKET)
{
WSACleanup();
printf("Create socket failed.\n");
system("pause");
return -3;
}
//struct sockaddr_in6 destAddr;
//destAddr.sin6_family = AF_INET6;
//destAddr.sin6_port = 7000;
//inet_pton(AF_INET6, "fe80::706d:5cb0:fcac:7141%11", &(destAddr.sin6_addr));
//绑定套接字
err = bind(s, res->ai_addr, res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Bind socket failed.\n");
system("pause");
return -4;
}
//发送消息
char buf[]="Hello, my name is zhcosin.";
err = sendto(s, buf, strlen(buf), 0, curinfo->ai_addr, curinfo->ai_addrlen);
//err = sendto(s, buf, strlen(buf), 0, (SOCKADDR *)&destAddr, sizeof(destAddr));
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Send failed.\n");
system("pause");
return -5;
}
closesocket(s);
freeaddrinfo(res);
freeaddrinfo(curinfo);
system("pause");
}
#include<stdio.h>
#include<winsock2.h>
#include<ws2tcpip.h>
//在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库
#pragma comment(lib,"WS2_32.LIB")
int main(int argc,char* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
printf("WSAStartup failed.\n");
return -1;
}
if ( LOBYTE( wsaData.wVersion ) != 1||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
printf("LOBYTE or HIBYTE failed.\n");
return -2;
}
//创建套接字//
addrinfo hints;
addrinfo *res;
memset(&hints,0,sizeof(hints));
hints.ai_family=AF_INET6;
hints.ai_socktype=SOCK_DGRAM;
hints.ai_protocol=IPPROTO_UDP;
hints.ai_flags=AI_NUMERICHOST;
getaddrinfo(NULL,"7999",&hints,&res);
SOCKET s;
s = socket(res->ai_family,res->ai_socktype,res->ai_protocol);
if(s == INVALID_SOCKET)
{
WSACleanup();
printf("Create socket failed.\n");
return -3;
}
//绑定套接字//
err = bind(s,res->ai_addr,res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Bind socket failed.\n");
return -4;
}
char buf[1024];
int len;
sockaddr_in6 sin;
len = sizeof(sin);
err = recvfrom(s,buf,sizeof(buf),0,(struct sockaddr*)&sin,&len);
if(err == SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
printf("Receive failed.\n");
return -5;
}
char ipbuf[INET6_ADDRSTRLEN];
inet_ntop(AF_INET6, &sin.sin6_addr, ipbuf, INET6_ADDRSTRLEN);
printf("We successfully received %d bytes from address %s:%d./n", err,
ipbuf, ntohs(sin.sin6_port));
closesocket(s);
system("pause");
}
getaddrinfo("::0", "2012", &hints, &res);
getaddrinfo("fe80::2c42:6fb2:a162:85ed%10", "2012", &hints, &curinfo);