C++基于UDP的网络应用程序的编写

来源:互联网 发布:游戏简繁体转换软件 编辑:程序博客网 时间:2024/06/06 16:27

1.服务器端程序(需要加载依赖库 ws2_32.lib)

#include <WinSock2.h>#include <stdio.h>void main(){//加载套接字库WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);//高字节,低字节err = WSAStartup(wVersionRequested, &wsaData);if (err != 0){return;//加载套接字失败}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);//host2net 32位addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);//host2net 16位//绑定套接字bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//等待并接收数据SOCKADDR_IN addrClient;int len = sizeof(SOCKADDR);char recvBuf[100];recvfrom(sockSrv, recvBuf, strlen(recvBuf)+1, 0, (SOCKADDR*)&addrClient, &len);//打印接受到的数据printf("%s/n",recvBuf);//关闭套接字closesocket(sockSrv);WSACleanup();}

2.客户端程序(需要加载依赖库 ws2_32.lib)

#include <WinSock2.h>#include <stdio.h>void main(){//加载套接字库WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);//高字节,低字节err = WSAStartup(wVersionRequested, &wsaData);if (err != 0){return;//加载套接字失败}if (LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;//版本不支持}//创建套接字SOCKET sockClient = socket(AF_INET, SOCK_DGRAM, 0);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);//host2net 16位//发送数据sendto(sockClient, "Hello!", strlen("Hello!")+1, 0, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//关闭套接字closesocket(sockClient);WSACleanup();}


0 0
原创粉丝点击