C++ネットワークプログラミング(UDP)


エンジニアリング-』設定"接続"ws 2_32.libから「オブジェクト/ライブラリモジュール」へ
サーバ:
#include <WINSOCK2.H>
#include <STDIO.H>//   c     

void main()
{ 
// ,
//1.        WSAStartup
//2.WSAStartup     :wsaData,wVersionRequested
//3.wsaData:                 
//  wVersionRequested:   
int err;
WORD wVersionRequested = MAKEWORD(1,1);
WSADATA wsaData;

err = WSAStartup(wVersionRequested,&wsaData);
if (err != 0)
{
return;
}

//        1.1.     Winsock   
//     Winsock   
if (LOBYTE(wsaData.wVersion != 1) || 
HIBYTE(wsaData.wVersion) != 1)
{
WSACleanup();
return;
}


SOCKET sockSrv = socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);


bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

/*  :int recvfrom(SOCKET s,char FAR* buf,int len,int flags,struct sockaddr FAR * from,int FAR *fromlen);
   1:   
   2:    buf
   3:buf  
   4:  0
   5:【out】          
   6:【in】【out】       */
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);
char recvBuf[100];


recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
printf("%s
",recvBuf); closesocket(sockSrv); WSACleanup(); }

 
//----------------------------------------------------------------------------------------------------------------
クライアント:
#include <WINSOCK2.H>
#include <STDIO.H>//   c     


void main()
{ 
// ,
//1.        WSAStartup
//2.WSAStartup     :wsaData,wVersionRequested
//3.wsaData:                 
//  wVersionRequested:   
int err;
WORD wVersionRequested = MAKEWORD(1,1);
WSADATA wsaData;

err = WSAStartup(wVersionRequested,&wsaData);
if (err != 0)
{
return;
}

//        1.1.     Winsock   
//     Winsock   
if (LOBYTE(wsaData.wVersion != 1) || 
HIBYTE(wsaData.wVersion) != 1)
{
WSACleanup();
return;
}


SOCKET sockClient = socket(AF_INET,SOCK_DGRAM,0);


/*  :int sendto(SOCKET s,const char FAR *buf,int len,int flags,const struct sockaddr FAR *to,int tolen);
   1:   
   2:    buf
   3:buf  
   4:  0
   5:          
   6:       */
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addrSrv.sin_family =AF_INET;
addrSrv.sin_port = htons(6000);


sendto(sockClient,"Hello",strlen("Hello")+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
closesocket(sockClient);
WSACleanup();
}