C++怎么实现udp发送和接收

在C++中实现UDP发送和接收可以使用socket编程。下面是一个简单的示例代码:发送UDP数据包:#include #include #include #include #include #include int main() {int sockfd;s

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

发送UDP数据包:

#include <iostream>
#include <string>
#include <cstring>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main() {
    int sockfd;
    struct sockaddr_in serverAddr;

    // 创建UDP socket
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    if (sockfd < 0) {
        std::cerr << "Failed to create socket" << 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::string message = "Hello, UDP!";
    sendto(sockfd, message.c_str(), message.length(), 0, (struct sockaddr*)&serverAddr, sizeof(serverAddr));

    close(sockfd);

    return 0;
}

接收UDP数据包:

#include <iostream>
#include <string>
#include <cstring>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main() {
    int sockfd;
    struct sockaddr_in serverAddr, clientAddr;
    socklen_t addrLen = sizeof(clientAddr);
    char buffer[1024];

    // 创建UDP socket
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    if (sockfd < 0) {
        std::cerr << "Failed to create socket" << std::endl;
        return -1;
    }

    // 设置服务器地址和端口
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(12345);
    serverAddr.sin_addr.s_addr = INADDR_ANY;

    // 绑定地址和端口
    bind(sockfd, (struct sockaddr*)&serverAddr, sizeof(serverAddr));

    // 接收数据
    int bytesReceived = recvfrom(sockfd, buffer, 1024, 0, (struct sockaddr*)&clientAddr, &addrLen);
    buffer[bytesReceived] = '
#include <iostream>
#include <string>
#include <cstring>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main() {
int sockfd;
struct sockaddr_in serverAddr, clientAddr;
socklen_t addrLen = sizeof(clientAddr);
char buffer[1024];
// 创建UDP socket
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
std::cerr << "Failed to create socket" << std::endl;
return -1;
}
// 设置服务器地址和端口
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(12345);
serverAddr.sin_addr.s_addr = INADDR_ANY;
// 绑定地址和端口
bind(sockfd, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
// 接收数据
int bytesReceived = recvfrom(sockfd, buffer, 1024, 0, (struct sockaddr*)&clientAddr, &addrLen);
buffer[bytesReceived] = '\0';
std::cout << "Received: " << buffer << std::endl;
close(sockfd);
return 0;
}
'
; std::cout << "Received: " << buffer << std::endl; close(sockfd); return 0; }

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/901617.html

(0)
派派
上一篇 2024-02-29
下一篇 2024-02-29

相关推荐

  • 如何更快地切域名(如何切换域名)

    如何更快地切域名,如何切换域名内容导航:网站更换域名具体要怎么换怎样把二级域名免费转换成一级域名请问用dreamweaver制作的网页怎样连到自己的域名如何才能更快地减肥一、网站更换域名具体要怎么换一、网站改版尽量别动URL首先还是再次强调下,除非万不得已,千万不要换域名,包括改变原有页面的URL,尽量做到一个页面针对唯一的URL,就等于我们每个人都有唯一的名字一样,现实生活中,我们换了

    2022-04-27
    0
  • 「怎么做edm营销」EDM营销有哪两种做法

    怎么做edm营销,EDM营销有哪两种做法 内容导航: 如何进行EDM营销EDM邮件营销的方法 EDM营销应该怎么做 EDM营销具有什么特点 企业如何做好EDM 一、如何进行EDM营…

    2022-08-13
    0
  • 荣耀magic3pro怎么分屏

    一些刚买了荣耀magic3pro的小伙伴想要分屏的时候不会了,其实很简单的我们只要桌面开启一个应用从屏幕左边缘或右边缘向内滑动呼出智慧分屏应用栏就可以了。荣耀magic3pro怎么分屏1、打开一个应用然后从屏幕左边缘或右边缘向内滑动并呼出智慧分屏应用栏。2、长按拖拽应用栏图标至屏幕边缘释放开启分屏。3、以上操作的前提下是打开智慧多窗。

    2024-02-05
    0
  • 搜搜竞价推广是什么(搜索竞价广告)

    搜搜竞价推广是什么,搜索竞价广告内容导航:什么是竞价推广竞价推广的概念是什么什么是搜索引擎竞价推广360搜索引擎竞价推广效果如何百度大搜价格是怎么收费的一、什么是竞价推广流量的精准度。可以说,它既是推广的核心也是竞价推广的特性。我认为:一切不以转化为目的的都是耍流氓。而流量的精准性决定了我们的展现是否有效、点击是否有效、线索是否有效。竞价中,经常会听到有人说:

    2022-05-02
    0
  • Nginx中如何部署静态站点和PHP应用

    在Nginx中部署静态站点和PHP应用通常需要配置两个不同的服务器块(server block)来处理不同类型的请求。以下是一个简单的示例配置:部署静态站点:server {listen 80;server_name example.com;root /var/www/static_site;location / {try_files $uri $uri/ =404;}}在上面的配置中,Ngin

    2024-04-03
    0
  • 国外vps比国内vps便宜的原因有哪些

    国外VPS供应商数量较多,竞争激烈,价格相对较低。国外VPS提供商通常拥有更多的服务器资源和更先进的技术,能够提供更高性价比的产品。国外VPS的硬件设备和网络质量一般比国内VPS更好,因此成本也相对较低。国外VPS的运营成本可能较低,例如气候条件和人工工资等因素都可能导致价格较低。国外VPS的税收政策和监管力度一般较低,也会影响价格的高低。

    2024-04-19
    0

发表回复

登录后才能评论