linux服务端下的c++ udp socket demo

2023-10-26

linux服务端 udp socket demo  如下:

//创建接受数据的socket
    int iSock = socket(PF_INET,SOCK_DGRAM,0);
    printf("socket ss:%d \n",iSock );
    struct sockaddr_in server_sockaddr;
    memset(&server_sockaddr, 0, sizeof(server_sockaddr));

    //配置sockaddr_in 结构体中相关参数
    server_sockaddr.sin_family = AF_INET;
    server_sockaddr.sin_port = htons(8080);
    server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);

    if(-1 == bind(iSock,(struct sockaddr*)&server_sockaddr,sizeof(server_sockaddr)) ){
        perror("bind error");;
        exit(1);
    }

  
        struct sockaddr_in client_addr;
        socklen_t length = sizeof(client_addr);
        unsigned char buff[1024]={0};

        //	UDP使用recvform接收数据  recvfrom返回0,不代表连接关闭,因为udp是无连接的。
        int n = recvfrom(iSock,buff, size(buff),0,(struct sockaddr*)&client_addr,&length);
        if(n <= 0){
            continue;
        }

        char addr[16];
        memset(addr, 0, sizeof(addr));
        strcpy(addr, inet_ntoa(client_addr.sin_addr));

        cout << "监听client ip:" << addr << ";port:" << client_addr.sin_port << endl;

        int   send_length = sendto(iSock,addr,sizeof(addr),0,(struct sockaddr*)&client_addr,sizeof(client_addr));

       if(send_length < 0){
        //发送失败则关闭该链接,
        close(iSock);
        }

    close(iSock);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux服务端下的c++ udp socket demo 的相关文章

随机推荐

  • 小米手机解BL锁教程

    1 找到设置 找到我的设备 2 点击全部参数 多点几下miui版本 直到弹出开发者模式提醒 3 返回 找到更多设置 4 找到开发者选项
  • Linux设备上时间不准确?使用chrony服务配置时间服务器实现Linux时间同步以及实现主从设备时间同步

    本文基于Linux上CentOS 7版本配合chrony 需要使用yum自行下载 进行演示 目录 一 计算机设备上的两种时间 1 硬件时间 2 系统时间 二 配置同步时间服务器 1 安装服务 2 配置服务 三 搭建主从时间服务器 1 服务器
  • 阿里云提示ECS服务器存在漏洞处理方法

    1 阿里云提供生成修复命令 但是这个只提供给企业版 即收费的 2 自己手动修复的话 采用软件升级一般都可以解决 除了提示带kernel的高危漏洞的 其他的不需要重启实例即可修复 有kernel的需要更新完成重启实例 这里可以先把 漏洞名称
  • 2021-04-08 使用Eclipse进行Web前端开发

    使用Eclipse进行Web前端开发 前言 本机为微软Surface pro4 为64位 所用操作系统为Windos 10 使用的Java版本为1 8 0 151 使用的JDK版本为JDK8 注意事项 1 Eclipse安装插件的时候一定要
  • 【mac】Mac 安装 RabbitMQ

    文章目录 1 概述 2 安装brew 3 安装 4 安装RabiitMQ的可视化监控插件 5 配置环境变量 6 后台启动 rabbitMQ 7 创建rabbitmq账号 8 给账号配置角色 1 概述 学习spring cloud 的时候 因
  • 【pytorch】pytorch模型保存技巧

    Pytorch会把模型相关信息保存为一个字典结构的数据 以用于继续训练或者推理 1 保存与加载模型参数 这是最常见的模型保存与加载方式 保存方式如下 state model state dict torch save state xxx p
  • qml实现红绿灯切换功能

    题目要求 参考代码 https download csdn net download y478225902 5260541 实现源码 import QtQuick 2 12 import QtQuick Window 2 12 Window
  • springboot整合maven Profile实现properties文件多环境配置

    步骤 首先写几个properties的配置文件 一般这样的文件有三个 而且文件的名称也也可以随意 不论你们的项目是使用的springmvc还是springboot 文件名称都可以随意指定 例如我的几个文件 在文件中写一些测试的属性值 方便测
  • 【一】重温HTML

    引言 经典对答 面试官 你了解HTML吗 回答 啊 我是来面试前端的呀 我会Vue 面试官 写文思考 写这一系列文章的时候 自己思考了几个问题 HTML的文章太多了 为什么还要写 HTML的入门谁不会 还要学 HTML的文章基本都是水文 谁
  • ES6解构赋值

    前面的话 我们经常定义许多对象和数组 然后有组织地从中提取相关的信息片段 在ES6中添加了可以简化这种任务的新特性 解构 解构是一种打破数据结构 将其拆分为更小部分的过程 本文将详细介绍ES6解构赋值 引入 在ES5中 开发者们为了从对象和
  • Mysql中MVCC的使用及原理详解

    准备 测试环境 Mysql 5 7 20 log 数据库默认隔离级别 RR Repeatable Read 可重复读 MVCC主要适用于Mysql的RC RR隔离级别 创建一张存储引擎为testmvcc的表 sql为 CREATE TABL
  • error compiling template但编辑器内未报错,处理步骤。

    1 首先寻找自己所引入的组件当中 例如用到了某个方法 而自己没有把方法写上 2 寻找自己所引入的代码当中是否有重复的代码 可能是复制的时候多复制一行而导致的 3 寻找是否有空格所导致的error compiling template 报错
  • 到处是“坑”的strtok()—解读strtok()的隐含特性

    在用C C 实现字符串处理逻辑时 strtok函数的使用非常广泛 其主要作用是按照给定的字符集分隔字符串 并返回各子字符串 由于该函数的使用有诸多限制 如果使用不当就会造成很多 坑 因此本文首先介绍那些经常误踩的坑 然后通过分析源代码 解读
  • Android——第三方Facebook授权登录获取用户信息

    由于项目中需要使用Facebook进行一键登录 所以记录下步骤 其实小伙伴直接看官网也可以 介绍的蛮详细的 先看下效果图吧 遵循以下步骤将Facebook登录添加到您的应用 Facebook开发者网站 https developers fa
  • bin文件转成C语言数组之c代码

    反汇编的时候用的着 include
  • Js弹出showModalDialog窗口---返回值或数组

    function showMyModalDialog url width height showModalDialog url dialogWidth width px dialogHeight height px center yes s
  • ACwing :01背包问题

    朴素的 动规的 基本表示 f i j 表示只看前 i 个物品 总体积是 j 的情况下 总价值最大是多少 result max f n 0 V f i j 1 不选第 i 个物品 f i j f i 1 j 2 选第 i个物品 f i j f
  • ubuntu 如何使用 root 用户

    环境 virtual box 6 1 ubuntu 1604 LTS 64 问题 一般的ubuntu会创建一个管理员用户 在使用 su 指令从管理员切换到root用户后 设在 etc profile的环境变量丢失 如何才能保证环境变量不变呢
  • Android开发中怎么实现上传图片到服务器

    要实现在Android开发中上传图片到服务器 可以按照以下步骤进行 1 在Android项目中添加相应的权限 确保应用程序可以访问设备上的照片或相机 在 AndroidManifest xml 文件中添加以下权限
  • linux服务端下的c++ udp socket demo

    linux服务端 udp socket demo 如下 创建接受数据的socket int iSock socket PF INET SOCK DGRAM 0 printf socket ss d n iSock struct sockad