计操理论课09 -- openEuler实验第八章网络管理

2023-11-02

任务1:编写基于socket的udp发送接收程序(45min)

任务要求

  1. 编写C源码,基于socket的udp发送接收程序,实现客户端与服务端的简单通信。
  2. 客户端从命令行输入中读取要发送的内容,服务端接收后实时显示。

任务代码

1、客户端 client.c

#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>

#define PORT		40000
#define BUF_SIZE        1024

int main(void)
{
   
	int sock_fd;
	char buffer[BUF_SIZE];
	int size;
	int len;
	int ret;
	struct sockaddr_in server_addr;
	if(-1 == (sock_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP)) ){
   
		printf("Failed to create a socket!\n");
		return 0;
	}

	//server infomation
	memset(&server_addr, 0, sizeof(server_addr));
	server_addr.sin_family = AF_INET;
	server_addr.sin_port = htons(PORT);
	server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
	bzero(buffer, BUF_SIZE);
	len = sizeof(server_addr);

	//read from stdin and send to server
	while(1){
   
		printf("Please enter the content to be sent:\n");
		size = read(0, buffer, BUF_SIZE);
		if(size){
   
			sendto(sock_fd, buffer, size, 0, (struct sockaddr*)&server_addr, len);
			bzero(buffer
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计操理论课09 -- openEuler实验第八章网络管理 的相关文章

随机推荐

  • Unity对象池应用

    对象池 顾名思义 就是放对象的池子 优缺点 空间换时间 用额外的内存消耗减少创建物体的时间 保证运行的流畅度 何时用 当需要大量创建相同游戏物体时 例如射击游戏中不停的创建子弹销毁子弹 大量地创建物体销毁物体会造成游戏卡顿 为了解决这个方法
  • tomcat 如何进行优化?优化方案有哪些?

    tomcat的优化 总的来说 Tomcat的优化大致分为两类 具体如下 一 tomcat的优化 1 tomcat的自身调优 采用动静分离 调优Tomcat线程池 调优Tomcat的连接器Connector 通过修改Tomcat的运行模式 禁
  • sshpass非交互环境登入与文件上传下载

    命令行直接使用密码来进行远程连接和远程拉取文件 可以用于自动化运维 堡垒机 下载地址 1 ssh登入 usr local bin sshpass p pwd ssh p port user ip 2 scp上传文件 usr local bi
  • Golang系列篇之配置内网GO仓库源代理(三)

    背景 公司内部服务器无法连通外网 DMZ区有一台服务器可以连通外网 自己采用自己公司部门内部的DMZ区服务器搭建内网的go仓库代理源 DMZ区服务器安装相关服务 服务器需要有docker基础环境 服务器IP地址为 192 168 1 214
  • 【正点原子STM32连载】 第二十九章 DMA实验 摘自【正点原子】APM32F407最小系统板使用指南

    1 实验平台 正点原子stm32f103战舰开发板V4 2 平台购买地址 https detail tmall com item htm id 609294757420 3 全套实验源码 手册 视频下载地址 http www openedv
  • Fabric架构&原理总结

    一 总体架构 这个架构参考关注在三个类别中 会员 Membership 区块链 Blockchan 和链码 chaincode 这些类别是逻辑结构 而不是物理上的把不同的组件分割到独立的进程 地址空间 虚拟 机器中 以上是Fabric核心组
  • 多分类模型混淆矩阵的输出(使用R语言)

    多分类模型混淆矩阵的输出 使用R语言 混淆矩阵 Confusion Matrix 是评估分类模型性能的常用工具 在多分类问题中 混淆矩阵可以帮助我们了解模型在每个类别上的预测情况 包括真阳性 True Positive 真阴性 True N
  • CUDA - 如何在CUDA C/C++中实现性能度量

    原文链接 How to Implement Performance Metrics in CUDA C C 文章目录 主机 设备同步 用CPU定时器为内核执行计时 使用CUDA事件 event 计时 内存带宽 理论带宽 有效带宽 测量计算吞
  • 概率论中密度函数变换

    这个马氏链蒙特卡洛方法 我这实在是感觉太难了 脑阔疼 不过终于找到一本书详细介绍这个方法 模式识别与机器学习 马春鹏 这个版本的 讲得很详细 就是看不懂 只能一点点慢慢看 在看的过程中 有许多概率论的知识忘记了 所以就重新回顾了一下这个密度
  • 转载嵌入式C语言中__weak的含义

    在使用STM32的hal库的时候 我们常常可以看到很多库自带的函数有很多是使用 weak修饰的 比如 这个修饰符的作用是什么呢 先看看单词的意思 我们可以知道这是弱的意思 具体弱在哪里 又是和什么比较 其实函数名称前面加上 weak 修饰符
  • Docker安装~(社区版安装)详细教程

    1 Docker的主要用途 1 提供一次性的环境 eg 本地测试他人的软件 持续集成的时候提供单元测试和构建的环境 2 提供弹性的云服务 Docker容器可以随开随关 很适合动态扩容和缩容 3 组件微服务架构 通过多个容器 一条及其可以跑多
  • 编译原理 实验一 词法分析器设计

    一 实验目的 1 深入理解有限自动机及其应用 2 掌握根据语言的词法规则构造识别其单词的有限自动机的方法 3 基本掌握词法分析程序的开发方法 4 能够设计词法扫描器程序 对源程序进行词法分析 并输出单词序列 二 实验内容及要求 编写识别单词
  • 山东大学项目实训开发日志——基于vue+springboot的医院耗材管理系统(18)

    这将是我在本次项目实训中写的最后一篇博客了 由我负责的所有任务都已完成 我们的开发 测试和发布都进入了尾声 今天我就来做一个简短的总结 回顾一下这两个半月以来我们的努力与成果 刚开始的时候 我们觉得这个项目并没有那么困难 也没有把他放在心上
  • HTML与PyCharm

    目录 1 如何在PyCharm创建HTML文件 2 如何在PyCharm创建HTML模板 3 如何在模板中加入作者信息和时间信息 同理 也可以在Python Script里面创建模板 不过一般就是自动填写作者信息 上期我们提到了使用PyCh
  • 05_Vue基础入门

    vue的作用 渐进式的前端框架 里面的框架按需获取 vue特点 1 解耦视图和数据 2 双向数据绑定 3 可复用的组件 常用的按钮和表格 4 前端路由数据 页面跳转 5 状态管理 6 虚拟DOM 引入方式 1 使用CDN连接引入 加载速度更
  • IAP升级程序中Bootloader和APP程序中断复用的解决办法

    菜鸟级别 像我这样的 高手可以给予我们菜鸟一族指点指点或者点击叉叉离开 相信大家在实现了STM32的USB DFU或者原子的串口升级APP程序 因为Bootloader程序中用到了USB的相关中断 在APP程序中同样也用到了相同的中断 这时
  • 【Groovy语言基础总结】基础语法、编译原理、多层嵌套json解析

    Groovy语言基础总结 编译原理 多层嵌套json解析 1 Groovy是什么 Groovy是一种面向对象编程语言 也是纯粹的脚本语言 一种用于Java虚拟机的动态语言 groovy完全兼容Java语法 2 Groovy的编译原理以及为什
  • 【超详细】windows10系统下深度学习环境搭建CUDA11.3+cuDNN,以及tensorflow,Keras,pyTorch对应版本

    目录 前言 1 环境介绍 2 显卡及算计要求 cuda配置 1 下载及安装 2 搭建环境及测试 cudnn配置 1 下载 2 配置环境及测试 pytorch配置 前言 最近换了新的电脑 老本版问题很多 各种报错 版本不匹配问题 走了许多弯路
  • java命令行指定依赖包运行class

    java cp lib javax mail 1 6 2 jar test4 cp和 classpath一样 是表示当前路径 后面跟冒号 且每个jar包之间用 隔开 windows上是 最后跟上class文件 class文件不需要跟后缀 不
  • 计操理论课09 -- openEuler实验第八章网络管理

    文章目录 任务1 编写基于socket的udp发送接收程序 45min 任务要求 任务代码 任务截图 任务2 使用 tshark 抓包 10min 任务要求 任务过程及截图 任务3 使用 setsockopt 发送记录路由选项 25min