UDP通信

2023-05-16

头文件:


 1 #pragma once
 2 
 3 #include<stdio.h>
 4 #include<unistd.h>
 5 #include<string.h>
 6 #include<stdlib.h>
 7 #include<netinet/in.h>
 8 
 9 #define SERVER_IP   "192.168.0.22"
10 #define SERVER_PORT 10000
11 
12 #define MAX_BUFFER_SIZE 255
13 #define LISTEN_QUEUE_SIZE 5
14 void Perror(char *str)
15 {
16     perror(str);
17     exit(1);
18 }  

 

客户端代码:


 1 #include"utili.h"
 2 
 3 int main()
 4 {
 5     int sockCli = socket(AF_INET, SOCK_DGRAM, 0);
 6     if(sockCli == -1)
 7         Perror("socket");
 8 
 9     struct sockaddr_in addrSer,addrCli;
10     addrSer.sin_family = AF_INET;
11     addrSer.sin_port = htons(SERVER_PORT);
12     addrSer.sin_addr.s_addr = inet_addr(SERVER_IP);
13 
14     socklen_t len = sizeof(struct sockaddr);
15     char sendbuf[MAX_BUFFER_SIZE];
16     char recvbuf[MAX_BUFFER_SIZE];
17 
18     while(1)
19     {
20         printf("Cli:>");
21         scanf("%s",sendbuf);
22         sendto(sockCli, sendbuf, strlen(sendbuf)+1, 0, (struct sockaddr*)&addrSer, len);
23 
24         recvfrom(sockCli, recvbuf, MAX_BUFFER_SIZE, 0, (struct sockaddr*)&addrSer, &len);
25         printf("Ser:>%s\n",recvbuf);
26 
27     }
28 
29     close(sockCli);
30     return 0;
31 }  

 

服务端代码:


 1 #include"utili.h"
 2 
 3 int main()
 4 {
 5     int sockSer = socket(AF_INET, SOCK_DGRAM, 0);
 6     if(sockSer == -1)
 7         Perror("socket");
 8 
 9     struct sockaddr_in addrSer,addrCli;
10     addrSer.sin_family = AF_INET;
11     addrSer.sin_port = htons(SERVER_PORT);
12     addrSer.sin_addr.s_addr = inet_addr(SERVER_IP);
13 
14     socklen_t len = sizeof(struct sockaddr);
15     int res = bind(sockSer, (struct sockaddr*)&addrSer, len);
16     if(res == -1)
17         Perror("bind");
18 
19     char sendbuf[MAX_BUFFER_SIZE];
20     char recvbuf[MAX_BUFFER_SIZE];
21 
22     while(1)
23     {
24         recvfrom(sockSer, recvbuf, MAX_BUFFER_SIZE, 0, (struct sockaddr*)&addrCli, &len);
25         printf("Cli:>%s\n",recvbuf);
26 
27         printf("Ser:>");
28         scanf("%s",sendbuf);
29         sendto(sockSer, sendbuf, strlen(sendbuf)+1, 0, (struct sockaddr*)&addrCli, len);
30     }
31 
32     close(sockSer);
33     return 0;
34 }  

 

转载于:https://www.cnblogs.com/xumiao1314/p/7365083.html

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

UDP通信 的相关文章

  • 如何在 Docker 上发布 UDP 端口?

    如何将 UDP 端口从 Docker 容器转发到主机 使用 p 标志并添加 udp端口号的后缀 p 53160 53160 udp 完整命令 sudo docker run p 53160 53160 p 53160 53160 udp p
  • 在 Android 上显示实时 UDP 或 RTP 流(组播)

    我刚接触 Android 开发几周 我需要编写一个应用程序 可以向用户显示以 UDP 或 RDP 多播的实时流 该流位于诸如 rtp 230 0 0 11 1234 之类的地址 并通过该模块通过 WIFI 发出 我已经尝试从播放器 Daro
  • 我应该对 UDP 使用(非阻塞)NIO 吗?

    根据这个帖子 https stackoverflow com questions 569555 non blocking udp i o vs blocking udp i o in java UDP 只是不阻塞 使用 非阻塞 NIO AP
  • 从 iOS 应用程序上的 UDP 服务器接收数据无法在 Linux 服务器上工作,但可以在 macbook pro 上工作 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 背景 我做
  • 在不使用环回网络的情况下将数据包转发到同一主机中的服务

    我有这个 libnetfilter queue 应用程序 它根据某些 iptables 规则从内核接收数据包 在直接讨论我的问题之前 我提供了一个示例可行代码和其他工具来设置测试环境 以便我们的问题定义和可能的解决方案可以更加准确和稳健 以
  • 播放 UDP 数据包中收到的原始 PCM 音频

    远程设备正在 UDP 数据包中发送实时原始 PCM 音频 不包含标头 我需要在 java 中实现一个程序来接收这些数据包并在 PC 上实时播放它们 据我所知 原始 PCM 的属性是 16 位 单声道 采样率 24KHz 因此我尝试向该原始
  • UDP 数据包在交付时是否保证是完整的、具有实际意义的?

    众所周知 UDP 用户数据报协议 并不安全 因为用它发送的数据包的顺序可能不按顺序传送 甚至根本不按顺序传送 但是 如果发送了 UDP 数据包 该数据包中的信息在实际意义上 99 99 及以上 是否保证正确 在实际意义上 99 99 及以上
  • UdpClient 在广播地址上接收

    在 c 中 我使用 UdpClient Receive 函数 public void StartUdpListener Object state try udpServer new UdpClient new IPEndPoint IPAd
  • 具有多个接口的 Python UDP 套接字

    我正在 Windows XP 机器上用 python2 7 编写脚本 本机使用不同的网卡连接到多个网络 我遇到了一个问题 我已将 UDP 套接字绑定到特定接口 我知道您可以通过仅提供网卡现有的 IP 地址来在 Windows 中完成此操作
  • 移动提供商无法进行 UDP 打洞

    实际上 我正在编写一个 Android 应用程序 该应用程序接收连接到 PC 的网络摄像头的图片 为了获得更多的 fps 我使用 udp 协议而不是 tcp 这个想法是 电脑将图片发送到手机的 IP 和端口 但电话提供商有不同的公共端口 所
  • NodeJS UDP 多播如何

    我正在尝试将 UDP 多播数据包发送到 230 185 192 108 以便每个订阅的人都会收到 有点卡住了 我相信它的广播正确 但似乎无法从任何客户端获取任何信息 Server var news Borussia Dortmund win
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • 将 Docker 容器连接到网络接口/设备而不是 IP 地址

    经过仔细的研究 测试和摆弄 我只能找到通过从 IP 端口转发来将 Docker 容器连接到给定接口的方法 这可以通过添加来完成 p Host IP Host Port Container Port to a docker run命令 我有一
  • 当网络上的所有计算机都具有相同的公共IP地址时,如何向特定计算机发送UDP数据包? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这就是问题 它非常简单 理解 我家里有 2 台电脑 它们都有相同的公共 IP 地址 例如 1 2 3 4 我在咖啡馆有一台计算机 不同的网络 因此它具
  • Java UDP 服务器,并发客户端

    下面的代码足以接受并发 UDP 传输吗 更具体地说 如果 2 个客户端同时传输 当我调用 receive 时 DatagramSocket 会将传输排队并一一传送它们 还是只有一个能够通过 DatagramSocket socket new
  • C# 广播是UDP消息,监听多个回复

    我正在尝试编写一些执行 UDP 广播的代码 然后侦听来自远程服务器的答复 说明它们存在 它用于识别子网上运行服务器应用程序的计算机 因此基本上会发出 谁在那儿 并听取所有答复 我在 Java 中有这个 工作完美 它将 DatagramPac
  • 什么是消息边界?

    什么是 消息边界 在以下情况下 TCP 和 UDP 之间的区别之一是 UDP 保留消息 边界 我理解之间的区别TCP and UDP 但我不确定的定义 消息边界 由于 UDP 在每个单独的数据包中包含目的地和端口信息 因此是否可以为消息提供
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用

随机推荐

  • Java内存优化和性能优化的几点建议

    1 没有必要时请不用使用静态变量 使用Java的开发者都知道 xff0c 当某个对象被定义为stataic变量所引用 xff0c 这个对象所占有的内存将不会被回收 有时 xff0c 开发者会将经常调用的对象或者变量定义为static xff
  • Linux系统安装docker并用ssh登录docker容器

    说明 xff1a 我使用的是Centos安装docker 第一步 xff1a 安装docker sudo yum install y yum utils sudo yum config manager add repo https down
  • 码云使用简介

    1 xff0c 何为码云 xff1f 码云属于中国的一个代码托管平台 xff0c 由 OSCHINA NET推出 简单说 xff0c 相当于GitHub的精简版 xff0c 对像小编这样英文盲显得更为友善 xff01 2 xff0c 下载及
  • Centos7搭建KVM虚拟化环境

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 1 查看系统版本 root 64 openstack cat etc centos release CentOS Linux releas
  • Linux字符驱动之主设备号与次设备号

    drv demo c include lt linux version h gt include lt linux init h gt include lt linux module h gt include lt linux pci h
  • linux 更新内核,安装内核树

    https www cnblogs com williamjie p 10723919 html
  • x86计算CPU频率示例

    include lt stdio h gt include lt stdlib h gt include lt assert h gt include lt stdint h gt include lt string h gt includ
  • SM2 签名预处理操作

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 转载 xff1a https www xuebuyuan com 1473900 html 一般情况下 xff0c 计算数字签名时应执行以
  • dataset中shuffle()、repeat()、batch()用法

    import numpy as np import tensorflow as tf np random seed 0 x 61 np random sample 11 2 make a dataset from a numpy array
  • Linux内核模块编程,多源码Makefile编写

    https mp csdn net console editor html 107838044 在学习内核模块编程的时候遇到了一些由于Makefile书写不正确导致的问题 一个 c源文件的Makefile按照网上的大部分资料介绍那样是没有问
  • 分组加密, 算法模式(ECB CBC CFB OFB)

    如果觉得写得不错 xff0c 烦请微信搜索公众号 34 郑州行疆户外 34 了解程序员的户外业余喜好 块加密 块加密 xff0c 英文Block Cyper xff0c 又称分组加密 xff0c 是一种常见的对称加密 xff0c 具有代表性
  • Linux UIO机制--用户空间I / O操作方法

    目录 前言 关于UIO UIO 的工作原理 前言 于许多类型的设备 xff0c 创建Linux内核驱动程序是过分的 真正需要的只是某种方式来处理中断并提供对设备存储空间的访问 控制设备的逻辑不必一定要在内核之内 xff0c 因为设备不需要利
  • Linux UIO驱动实例介绍

    接上一篇介绍UIO机制 https blog csdn net hpu11 article details 109395820 uio驱动详解 为了用最简单的例子说明问题 xff0c 我们在我们uio驱动的内核部分只映射了一块1024字节的
  • Mosquitto服务安装与使用---入门操作介绍

    关于Mosquitto配置的资料网上还是有几篇的 xff0c 但是看来看去 xff0c 基本上都是基于Linux 基于Window的凤毛麟角 xff0c 看上去貌似配置的东西相差不大 xff0c 实操过程中真的烦透了 xff0c 配置就是不
  • Windows 11 系统下载,正式版尚未发布

    下载链接方式 xff1a 关注 郑州行疆户外 程序员自己的订阅号 xff0c 回复 win11 xff0c 获取win11系统下载链接 一 发布 今年5月的Build大会 xff0c 微软便正式明确新一代操作系统为Windows 11 xf
  • Windows 11 系统下载安装 教程

    关 注 郑州行疆户外 订阅号 xff0c 回复 win11 xff0c 获取win11系统下载链接 xff0c 安装教程 说明 Windows11系统安装教程 xff0c 这里使用VM虚拟机演示具体安装教程 xff0c 如果是新手 xff0
  • Windows 11 TPM2.0问题及解决方法

    关注 郑州行疆户外 订阅号 回复 win11 xff0c 下载 windows11系统 回复 问题 xff0c 查看 windows11安装过程中遇到的问题及其解决方法 随着2021年6月24日 xff0c 微软正式发布会上确定windon
  • linux的dma驱动

    硬件平台 xff1a TI的3530 内核 xff1a linux 2 6 36 功能 xff1a 将fpga的数据从内存的一个地方复制到内存另一个地方 初学dma感到很是吃力 xff0c 编写的内核驱动代码仔细看了一个星期 xff0c 才
  • linux内核的并发与竞态

    并发与竞态是指多个任务单元同时访问同一个资源 xff0c 就会出现并发 xff0c 竞态的现象 其中多个任务单元包括中断 xff0c 进程 线程 xff0c 甚至多个多处理器 xff1b 同一资源既包含硬件资源 xff0c 也包括软件数据
  • UDP通信

    头文件 xff1a 1 pragma once 2 3 include lt stdio h gt 4 include lt unistd h gt 5 include lt string h gt 6 include lt stdlib