#include<iostream>
#include<winsock2.h>
#include <WS2tcpip.h>
using namespace std;
#pragma comment(lib,"ws2_32.lib")int initNetLib() {
//初始化网络库
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
printf("WSAStartup failed with error: %d\n", err);
return err;
}
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
{
printf("Could not find a usable version of Winsock.dll\n");
WSACleanup();
return -1;
}
return 0;
}
int main() {
cout << "UDP Client" << endl;
//1.初始化网络库
initNetLib();
//2.创建套接字
SOCKET sockCli = socket(AF_INET, SOCK_DGRAM, 0);
if (INVALID_SOCKET == sockCli) {
cout << "socket 创建不成功" << endl;
return -1;
}//3.分配地址和端口
//htonl:host to net long
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr;
inet_pton(AF_INET, "127.0.0.1", &addrSrv.sin_addr);//绑定一下IP地址
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6001);
int len = sizeof(SOCKADDR_IN);
char sendBuf[100] = "hello";
char recvBuf[100] = { 0 };
//4.发送数据
sendto(sockCli, sendBuf, strlen(sendBuf) + 1, 0, (SOCKADDR*)&addrSrv, len);
//5.接收数据
recvfrom(sockCli, recvBuf, 100, 0, (SOCKADDR*)&addrSrv, &len);
cout << recvBuf << endl;
closesocket(sockCli);
system("pause");return 0;
}
UDP Client代码
最新推荐文章于 2025-03-26 20:55:04 发布