Linux C/C++UDP通信实现
文章目录
- 一、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通信实现相关推荐
- Linux下的UDP通信
socket()函数 函数说明:建立新的socket通信 头文件: #include<sys/socket.h> #include<sys/types.h> 函数定义:int ...
- 半双工通信是指c语言,Linux下C语言实现半双工的UDP通信
------------恢复内容开始------------ Linux下C语言实现半双工的UDP通信 1.单向通信:又称为单工通信,即只能有一个方向的通信而没有反方向的交互.无线电广播或有线电广播以 ...
- 【Linux】网络编程三:TCP通信和UDP通信介绍及代码编写
参考连接:https://www.nowcoder.com/study/live/504/2/16. [Linux]网络编程一:网络结构模式.MAC/IP/端口.网络模型.协议及网络通信过程简单介绍 ...
- linux的UDP通信编程
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...
- Linux环境下实现UDP通信
1. 一对一模式下的UDP通信 2. 一对一模式下的UDP双向通信(多线程实现) 3. 一对一模式下的UDP双向通信(I/O复用实现) 1. 一对一模式下的UDP通信 send端 #include & ...
- [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例
很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 ...
- Linux下编写UDP/TCP版本的服务器和客户端的流程
Linux下编写UDP/TCP版本的服务器和客户端的流程 文章目录 Linux下编写UDP/TCP版本的服务器和客户端的流程 一:UDP和TCP的区别 二.UDP编写服务器的步骤 三.UDP编写客户端 ...
- 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto
文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...
- 【转】Linux编程之UDP SOCKET全攻略
转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...
- python共享内存通信mapofview_python map eval strPython socket模块实现的udp通信功能示例...
本文实例讲述了Python socket模块实现的udp通信功能.分享给大家供大家参考,具体如下: socket介绍 socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要 ...
最新文章
- 京东涉足快递业加剧行业动乱
- jstl fn:replace替换换行符
- 【NetApp】ROOT VOLUME NOT WORKING PROPERLY: RECOVERY REQUIRED
- 在本地生成ssh-key 免密码远程clone GitLab中的项目到本地
- 文字创作类App分享-简书
- 下面属于javascript内部对象的有_JavaScript从零开始——面向对象编程(2)
- 谷歌趋势:“比特币”热度远不及2017年高点
- 路由器用到坏才换?路由器你在乎哪些功能?
- 顺序表常见操作实现之一
- 图片延迟加载(lazyload)的实现原理
- 多片段时序数据建模预测实践
- python3.x编程模板总结
- 图书馆占座系统(七)
- 【写博客常用】美赛什么时候出成绩
- 从录屏到转换为GIF的一站式解决方案
- c语言中isupper用法,C语言 isupper()用法及代码示例
- 网络爬虫js逆向解决网站登录RSA加密问题,不使用selenium如何实现登录,session维持登录状态请求爬取
- Python实现网络爬虫
- winVNC 源代码分析
- Python每日一记127文本型数字转化为数值型数字(eval函数)
热门文章
- Multisim14.0安装教程
- 淘宝 NPM 镜像解决软件下载速度慢的问题
- PDF417二维条码详解
- 基于Halcon学习的二维码识别【六】pdf417_bottle.hdev
- 安川服务器显示ab32,安川驱动器维修常见报警代码及维修方法
- 台达b3伺服modbus通讯_台达ASDA-AB伺服与EVIEW触摸屏MODBUS通讯
- PHP for windows VC9 VC6区别
- 算法竞赛入门经典 aabb
- 中标麒麟linux系统微信安装,Linux安装wine微信安装和遇到的问题及解决方法
- 跳级全奖进哈佛,连马云都忌惮三分,赚18个亿后隐退美国,如今的他在干什么?