文章目录

  • 一、UDP通信流程
  • 二、代码实现
    • 1.服务器
    • 2.客户端

一、UDP通信流程

二、代码实现

1.服务器

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>int main()
{// 1.创建一个通信的socketint fd = socket(PF_INET, SOCK_DGRAM, 0);if (fd == -1){perror("socket");exit(-1);}// 2.绑定struct sockaddr_in addr;addr.sin_family = AF_INET;addr.sin_port = htons(9999);addr.sin_addr.s_addr = INADDR_ANY;int ret = bind(fd, (struct sockaddr*)&addr, sizeof(addr));if (ret == -1){perror("bind");exit(-1);}// 3.通信while (1){char buf[128];char ipbuf[16];struct sockaddr_in caddr;int len = sizeof(caddr);//接受数据int num = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&caddr, &len);printf("client ip:%s,port :%d\n",inet_ntop(AF_INET, &caddr.sin_addr.s_addr, ipbuf, sizeof(ipbuf)),ntohs(caddr.sin_port));printf("client say:%s\n", buf);//发送数据sendto(fd, buf, strlen(buf) + 1,0,(struct sockaddr*)&caddr,sizeof(caddr));}close(fd);return 0;
}

2.客户端

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>int main()
{// 1.创建一个通信的socketint fd = socket(PF_INET, SOCK_DGRAM, 0);if (fd == -1){perror("socket");exit(-1);}//服务器地址信息struct sockaddr_in saddr;saddr.sin_family = AF_INET;saddr.sin_port = htons(9999);inet_pton(AF_INET, "182.61.11.197", &saddr.sin_addr.s_addr);int num = 0;// 3.通信while (1){char buf[128];sprintf(buf, "hello ,i am client %d\n", num++);//发送数据sendto(fd, buf, strlen(buf) + 1,0,(struct sockaddr*)&saddr,sizeof(saddr));//接受数据int num = recvfrom(fd, buf, sizeof(buf), 0, NULL, NULL);printf("server say:%s\n", buf);sleep(1);}close(fd);return 0;
}

Linux C/C++UDP通信实现相关推荐

  1. Linux下的UDP通信

    socket()函数 函数说明:建立新的socket通信 头文件: #include<sys/socket.h> #include<sys/types.h> 函数定义:int ...

  2. 半双工通信是指c语言,Linux下C语言实现半双工的UDP通信

    ------------恢复内容开始------------ Linux下C语言实现半双工的UDP通信 1.单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互.无线电广播或有线电广播以 ...

  3. 【Linux】网络编程三:TCP通信和UDP通信介绍及代码编写

    参考连接:https://www.nowcoder.com/study/live/504/2/16. [Linux]网络编程一:网络结构模式.MAC/IP/端口.网络模型.协议及网络通信过程简单介绍 ...

  4. linux的UDP通信编程

    这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...

  5. Linux环境下实现UDP通信

    1. 一对一模式下的UDP通信 2. 一对一模式下的UDP双向通信(多线程实现) 3. 一对一模式下的UDP双向通信(I/O复用实现) 1. 一对一模式下的UDP通信 send端 #include & ...

  6. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  7. Linux下编写UDP/TCP版本的服务器和客户端的流程

    Linux下编写UDP/TCP版本的服务器和客户端的流程 文章目录 Linux下编写UDP/TCP版本的服务器和客户端的流程 一:UDP和TCP的区别 二.UDP编写服务器的步骤 三.UDP编写客户端 ...

  8. 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto

    文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...

  9. 【转】Linux编程之UDP SOCKET全攻略

    转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...

  10. python共享内存通信mapofview_python map eval strPython socket模块实现的udp通信功能示例...

    本文实例讲述了Python socket模块实现的udp通信功能.分享给大家供大家参考,具体如下: socket介绍 socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要 ...

最新文章

  1. 京东涉足快递业加剧行业动乱
  2. jstl fn:replace替换换行符
  3. 【NetApp】ROOT VOLUME NOT WORKING PROPERLY: RECOVERY REQUIRED
  4. 在本地生成ssh-key 免密码远程clone GitLab中的项目到本地
  5. 文字创作类App分享-简书
  6. 下面属于javascript内部对象的有_JavaScript从零开始——面向对象编程(2)
  7. 谷歌趋势:“比特币”热度远不及2017年高点
  8. 路由器用到坏才换?路由器你在乎哪些功能?
  9. 顺序表常见操作实现之一
  10. 图片延迟加载(lazyload)的实现原理
  11. 多片段时序数据建模预测实践
  12. python3.x编程模板总结
  13. 图书馆占座系统(七)
  14. 【写博客常用】美赛什么时候出成绩
  15. 从录屏到转换为GIF的一站式解决方案
  16. c语言中isupper用法,C语言 isupper()用法及代码示例
  17. 网络爬虫js逆向解决网站登录RSA加密问题,不使用selenium如何实现登录,session维持登录状态请求爬取
  18. Python实现网络爬虫
  19. winVNC 源代码分析
  20. Python每日一记127文本型数字转化为数值型数字(eval函数)

热门文章

  1. Multisim14.0安装教程
  2. 淘宝 NPM 镜像解决软件下载速度慢的问题
  3. PDF417二维条码详解
  4. 基于Halcon学习的二维码识别【六】pdf417_bottle.hdev
  5. 安川服务器显示ab32,安川驱动器维修常见报警代码及维修方法
  6. 台达b3伺服modbus通讯_台达ASDA-AB伺服与EVIEW触摸屏MODBUS通讯
  7. PHP for windows VC9 VC6区别
  8. 算法竞赛入门经典 aabb
  9. 中标麒麟linux系统微信安装,Linux安装wine微信安装和遇到的问题及解决方法
  10. 跳级全奖进哈佛,连马云都忌惮三分,赚18个亿后隐退美国,如今的他在干什么?