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();
}