7-7作业

news2024/11/17 9:45:18

 发送端

#include<stdio.h>
#include<Windows.h>
#include<windows.h>
#include<WinSock2.h>
#include<string.h>
#include<stdlib.h>
#define ERR_OR(msg) do{\
fprintf(stderr, "__%d__", __LINE__);\
perror(msg);\
}while(0)
constexpr auto IP = "192.168.122.88";
constexpr auto PORT = 8888;
int main()
{
	int cfd = socket(AF_INET, SOCK_DGRAM, 0);
	if (cfd<0)
	{
		ERR_OR("socket");
		return -1;
	}
	printf("cfd=%d\n", cfd);
	struct sockaddr_in sin;
	sin.sin_family = AF_INET;
	sin.sin_port = htons(PORT);
	sin.sin_addr.s_addr = inet_addr(IP);
	char buf[128];
	int num = 0;
	while (num<15)
	{
		num++;
		memset(buf,0, sizeof(buf));
		fgets(buf, sizeof(buf), stdin);
		buf[strlen(buf) - 1] = '\0';
		if (sendto(cfd,buf,sizeof(buf),0,(struct sockaddr*)&sin,sizeof(sin))<0)
		{
			ERR_OR("sendto");
			return -1;
		}
		puts("sendto sucss");
	}
	closesocket(cfd);
	return 0;
}

接收端

#include<myy.h>
#define ERR_OR(msg) do{\
	fprintf(stderr,"__%d__",__LINE__);\
	perror(msg);\
}while(0)
#define GIP "224.1.2.3"
#define LIP "192.168.123.92"
#define PORT 8888
int main()
{
	int sfd=socket(AF_INET,SOCK_DGRAM,0);
	if (sfd<0)
	{
		ERR_OR(msg);
		return -1;
	}
	printf("sfd=%d\n",sfd);

	struct ip_mreqn mq;
	mq.imr_multiaddr.s_addr=inet_addr(GIP);
	mq.imr_address.s_addr  =inet_addr(LIP);
	mq.imr_ifindex         =0;
	printf("加入小组成功%s,端口%d\n",GIP,PORT);

	struct sockaddr_in sin;
	sin.sin_family     =AF_INET;
	sin.sin_port       =htons(PORT);
	sin.sin_addr.s_addr=inet_addr(GIP);
	if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))<0)
	{
		ERR_OR("bind");
		return -1;
	}
	puts("bind YES");
	struct sockaddr_in cin;
	socklen_t addrlen=sizeof(cin);
	char buf[128];
	int num=0;
	while(num<15)
	{
		num++;
		bzero(buf,sizeof(buf));
		if(recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr*)&cin,&addrlen)<0)
		{
			ERR_OR("recvfrom");
			return -1;
		}

		printf("[%s:%d]:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);
	}
	close(sfd); 

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python爬取电影数据并可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

simulink m脚本管理模型参数

clear; m 1600;%kg 默认都是double g 9.8;% m/s^2 f 0.015;%滚动阻力系数 Cd 0.3;%空气阻力系数 A 2;%m^2 delta 1.2;% 旋转质量换算系数 alpha 0;%坡度 rad 脚本写完一定要运行&#xff0c;等右侧工作区加载完成

酷瓜云课堂(企业版)v1.2.1 发布,网课网校系统,持续更新

更新内容 增加开票额度收支逻辑使用本地图像验证码升级layui-v2.8.8优化钉钉webhook优化队列处理任务优化migrations文件修正提现平台检查修正移动端配置项为空异常调整UserBalance属性 注意事项 如果你的起始版本 > v1.2.0&#xff0c;请忽略以下操作&#xff0c;按照正…

窥探广告公司内幕:揭秘部门运作方式

一般的广告公司大概可以分为三大部门&#xff1a;1、创作部(Creative)、2、客户服务部(Account Servicing)、3、媒介部(Media)。 1、创作部(Creative Department) 创作部的主要工作是负责构思广告及执行广告创作。重心人物是行政创作总监(Executive Creative Director, ECD)。…

Openmediavault配置存储网盘的 用户、组、权限、共享+文档访问功能 (续debian Linux安装配置企业私有网盘)

一、适用环境 1、使用专业服务器的存储容量保存教学资源、企业资源&#xff0c;可供有权限用户共享读取访问。 2、需要对批量的用户进行管理&#xff0c;不同的用户属于不同的组&#xff0c;不同组具备不同的访问权限&#xff0c;如&#xff1a;有些用户只需要读取打开执行&am…

Vue实现在线文档预览

目录 背景在线预览Office文档文件在线预览pdf文档预览方案一方案二 Word文档预览Excel文档预览PPT文档预览 纯文本、各种代码文件预览图片文件预览视频文件预览Aliplayer阿里云播放器Xgplayer西瓜播放器Bilibiliplayer仿哔哩哔哩弹幕播放器 音频文件预览在线文档预览项目&#…

(vue)人工智能,区分对话框各自内容区域样式

(vue)人工智能&#xff0c;区分对话框各自内容区域样式 效果&#xff1a; 思路&#xff1a; 1.一行里包含 对方头像、内容、我方头像 三部分 2.根据消息数组的下标&#xff0c;确定是我方消息还是对方消息&#xff08;偶数我方&#xff0c;奇数对方&#xff09; 3.根据奇偶数显…

MapStruct转换时的一些问题

1.当属性名相同 类型不同时&#xff0c;需要手动指明映射 Mappings({Mapping(source "customerType",target "customerType"),Mapping(source "customerStatus",target "customerStatus"))List<CustomerBindDetailExcelVO> …

tf.contrib.training.HParams在tensorflow2.0版本以上失效的解决

tf.contrib.training.HParams在tensorflow2.0版本以上失效的解决_我也想学习的博客-CSDN博客 1. # Copyright 2016 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this fi…

学习matplotlib第一步

下边代码会画出一个ycos(x)的图像&#xff1a; import numpy as np import matplotlib.pyplot as pltx np.linspace(-2,2,100) ynp.cos(np.pi*x)plt.plot(x,y,go) plt.title(r"$y\cos(\pi | time x$") plt.show()在Jupyter lab运行的时候&#xff0c;发现报错如下&…

干货-卷起来,企业级web自动化测试实战落地(一)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 开始前-项目讨论 …

18 SAR图像和光学图像的配准算法(matlab程序)

1.简述 合成孔径雷达(synthetic aperture radar,SAR)图像配准的主要目标是对同一或不同传感器在不同时间、不同视点捕获的SAR图像进行配准。SAR因具有全天候成像能力和地物穿透能力&#xff0c;因此具有非常广泛的应用&#xff0c;如变化检测[1]、图像融合[2]、目标检测与识别[…

提取背景音乐去掉人声的方法是什么?这几个方法简单做到!

当制作视频或音频时&#xff0c;我们常常需要提取背景音乐并去掉人声。这一过程并不简单&#xff0c;需要一些专业的技巧和工具。相信有些新手小伙伴也不知道该如何操作&#xff0c;下面我们将分享三个方法&#xff0c;希望能够帮助到你。 方法一&#xff1a;使用记灵在线工具…

gma 2 教程(二)数据操作:1. 相关模块组成

考虑到数据读写是地理空间数据分析和应用的基础&#xff0c;因此将本章作为正文第一部分&#xff0c;以便为后续章节应用提供基础支持。本章以gma栅格/矢量数据输入输出模块&#xff08;io&#xff09;栅格/矢量数据的读取、创建、变换等主要操作为基础&#xff0c;配合gma地理…

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型

团队模型、论文、博文、直播合集&#xff0c;点击此处浏览 一、论文&代码 论文&#xff1a;https://arxiv.org/abs/2303.08594 模型&代码&#xff1a;https://modelscope.cn/models/damo/cv_resnet50_fast-instance-segmentation_coco/summary 二、背景 实例分割旨…

2023-7-8-第十四式策略模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

axios拦截器

在请求或响应被 then 或 catch 处理前拦截它们。 // 添加请求拦截器 axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器 axios.inte…

PMSG永磁风机VSG网侧虚拟同步控制一次调频四机两区域系统,离散模型。

PMSGM永磁同步风机VSG虚拟同步机调频两区域系统&#xff0c;离散模型&#xff0c;非无穷大电网。 风机为网侧VSG控制。四机两区域系统&#xff0c;渗透率可调。当前渗透率为区域1&#xff0c;一台900MW同步机&#xff0c;区域2一台900MW同步机&#xff0c;永磁同步风电场容量5…

minio 升级相关问题

系列文章目录 文章目录 系列文章目录前言一、集群部署二、单机部署三、写一个启动脚本四、性能方面 前言 minio版本升级&#xff0c;目的主要是为了解决由 Direct buffer memory 引发的附件下载优化方案 minio version RELEASE.2021-01-16T02-19-44Z > minio version RELEA…

60题学会动态规划系列:动态规划算法第四讲

买卖股票相关的动态规划题目 文章目录 1.买卖股票的最佳时机含冷冻期2.买卖股票的最佳时期含⼿续费3.买卖股票的最佳时机III4.买卖股票的最佳时机IV 1.最佳买卖股票时机含冷冻期 力扣链接&#xff1a;力扣 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的…