意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

在C++中实现UDP发送和接收可以使用socket编程

来源:佚名 编辑:佚名
2024-02-29 14:36:08

在C++中实现UDP发送和接收可以使用socket编程。下面是一个简单的示例代码:

发送UDP数据包:

#include<iostream> #include<string> #include<cstring> #include<unistd.h> #include<sys/socket.h> #include<netinet/in.h> intmain(){ intsockfd; structsockaddr_inserverAddr; //创建UDPsocket sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd<0){ std::cerr<<"Failedtocreatesocket"<<std::endl; return-1; } //设置服务器地址和端口 serverAddr.sin_family=AF_INET; serverAddr.sin_port=htons(12345); serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1"); //发送数据 std::stringmessage="Hello,UDP!"; sendto(sockfd,message.c_str(),message.length(),0,(structsockaddr*)&serverAddr,sizeof(serverAddr)); close(sockfd); return0; }

接收UDP数据包:




在C++中实现UDP发送和接收可以使用socket编程

#include<iostream> #include<string> #include<cstring> #include<unistd.h> #include<sys/socket.h> #include<netinet/in.h> intmain(){ intsockfd; structsockaddr_inserverAddr,clientAddr; socklen_taddrLen=sizeof(clientAddr); charbuffer[1024]; //创建UDPsocket sockfd=socket(AF_INET,SOCK_DGRAM,0); if(sockfd<0){ std::cerr<<"Failedtocreatesocket"<<std::endl; return-1; } //设置服务器地址和端口 serverAddr.sin_family=AF_INET; serverAddr.sin_port=htons(12345); serverAddr.sin_addr.s_addr=INADDR_ANY; //绑定地址和端口 bind(sockfd,(structsockaddr*)&serverAddr,sizeof(serverAddr)); //接收数据 intbytesReceived=recvfrom(sockfd,buffer,1024,0,(structsockaddr*)&clientAddr,&addrLen); buffer[bytesReceived]='\0'; std::cout<<"Received:"<<buffer<<std::endl; close(sockfd); return0; }

以上代码实现了一个简单的UDP发送和接收示例,可以根据实际需求进行进一步的扩展和优化。

本网站发布或转载的文章均来自网络,其原创性以及文中表达的观点和判断不代表本网站。
上一篇: 要清空一个文件夹的内容,可以使用以下命令: 使用rm命令删除文件夹内的所有文件和子文件夹: rm-rf/path/to/folder/* 请注意,这条命令会直接删除文件夹中的所有内容,包括子文件夹和文件,不会提示确认操作,所以请谨慎使用 下一篇: 在Qt中解析自定义数据包通常需要以下步骤: 创建一个结构体或类来表示自定义数据包的格式