首页 > 其他分享 >局域网广播测试

局域网广播测试

时间:2024-06-04 19:01:21浏览次数:16  
标签:udp addr flag 局域网 广播 测试 include socket

局域网广播测试

目录

头文件/宏定义

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/udp.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>

函数

/********************************************************************
 *
 *	name	 :  main
 *	function :*	这是一个测试UDP套接字的广播属性的案例,本程序用于作为UDP服务器,服务器向网络号为
 *	            192.168.64的C类网络的广播地址192.168.64.255发送消息,测试结果应该为处于该网络的所有
 *	            主机都会收到相关的数据包。
 *	argument :  
 *				@n  :argc
 *              @n  :argv
 *	retval	 :  none
 *	author	 :  [email protected]
 *	date	 :  2024年6月4日
 * 	note	 :
 *
 * *****************************************************************/

int main(int argc, char const *argv[])
{
	// 1.创建UDP套接字
	int udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
	if (udp_socket == -1)
	{
		fprintf(stderr, "udp socket error,errno:%d,%s\n", errno, strerror(errno));
		exit(1);
	}

	// 2.获取UDP套接字的广播属性
	int flag = -1;
	socklen_t len = 4;
	getsockopt(udp_socket, SOL_SOCKET, SO_BROADCAST, (void *)&flag, &len);

	printf("flag = %d\n", flag); // 0

	// 3.设置UDP套接字的广播属性
	int optval = 1;
	setsockopt(udp_socket, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(optval));

	// 4.获取UDP套接字的广播属性
	flag = -1;
	getsockopt(udp_socket, SOL_SOCKET, SO_BROADCAST, (void *)&flag, &len);
	printf("flag = %d\n", flag); // 非0

	// 3.利用循环每隔5s想广播地址发送数据包
	char buf[128] = "I am teacher,this is test packet";

	struct sockaddr_in dest_addr;
	dest_addr.sin_family = AF_INET;					// 协议族,是固定的
	dest_addr.sin_port = htons(atoi(argv[1]));		// 服务器端口,必须转换为网络字节序
	dest_addr.sin_addr.s_addr = inet_addr(argv[2]); // 服务器地址 "192.168.64.xxx"

	while (1)
	{
		sendto(udp_socket, buf, strlen(buf), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
		sleep(5);
	}
	return 0;
}

标签:udp,addr,flag,局域网,广播,测试,include,socket
From: https://www.cnblogs.com/ljw-boke/p/18231524

相关文章

  • 局域网小组群播
    局域网小组群播目录局域网小组群播头文件/宏定义函数1函数1主函数头文件/宏定义#include<stdio.h>#include<stdlib.h>#include<string.h>#include<arpa/inet.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<time.......
  • (性能测试)--记录一次高可用场景导致CPU资源升高
    测试场景:高可用场景--限流测试;被测交易:查询类交易,HTTP协议;交易链路:jmeter-web-coimpre(前置服务)--coimbp--cobp(coimbp、coimpre都会访问同一个数据库);注:cobp为合肥机房,其他服务均为北京机房,要注意跨网段存在网络延迟(会导致TPS波动情况);场景配置:配置coimpre服务的......
  • 需要帮助对 shadcn/ui 中的选择进行单元测试
    我有一个React组件,我在其中使用了shadcn/ui,具体而言,在本例中使用了Select:<divclassName='flex-1gt<divclassName='flex-1'>;<FormFieldcontrol={form.control}name='clientType......
  • 今天分享pytest执行自动化测试时,setup和teardown的作用
    1.本章我们要讲解setup_module()和teardown_module()以及setup_function()和teardown_function()、setup()和teardown()、setup_class()和teardown_class()的使用。setup_module()和teardown_module():setup_module是所有用例开始前叧执行一次,teardown_module是所有用例结束后......
  • [转帖]测试TPCC性能
    下载TPCC标准测试工具BenchmarkSQL5.0。将目录lib/postgresql下面的*.jar替换为openGauss适配的jar包。$pwd/yourpath/benchmarksql-5.0/lib/postgres$lspostgresql.jar#openGaussjdbc驱动。postgresql-9.3-1102.jdbc41.jar.bak#自带jar备份。openGauss适......
  • 探索sqlmap在WebSocket安全测试中的应用
    探索sqlmap在WebSocket安全测试中的应用WebSocket与HTTP的区别WebSocket,对于初次接触的人来说,往往会引发一个疑问:既然我们已经有了广泛使用的HTTP协议,为何还需要引入另一种协议?WebSocket又能为我们带来哪些实质性的好处呢?这背后的答案在于HTTP协议的一个关键限制——通信的发起......
  • C/C++结构体对齐测试
    #include<stddef.h>#include<iostream>structs1{inta;intb;};#pragmapack(8)structs2{charc;inta;doubleb;};structs3{charb[10];doublea;};#pragmaunpackstructs4{c......
  • allure的suites(测试套)中未显示返回值参数,显示No information about test execution is
    转自大佬:https://blog.csdn.net/sbdxmnz/article/details/137016423 ExecutionNoinformationabouttestexecutionisavailable.  解决方法:添加代码,因为pytest输出文本形式测试报告时未存储响应内容#将接口响应的文本内容附加到Allure报告中allure.attach(接口响......
  • 图形学初识--深度测试
    文章目录前言正文为什么要有深度测试?画家算法循环遮挡深度测试当代最常见实现方式?总述什么是z-buffer呢?z-buffer从哪来呢?如何利用z-buffer实现深度测试?举个例子结尾:喜欢的小伙伴点点关注+赞哦!前言本章节补充一下深度测试的内容,主要包含:为什么要有深度测试?深度测......
  • Helm 图表在调用测试(test-connection.yml)时出现任何错误,如何在 NOTES.txt 中显示错误
    下面是我的test-connection.ymlapiVersion:v1kind:Pod元数据:name:"{{include"demohelmapi.fullname".}}-test-connection";labels:{{-include"demohelmapi.labels".|nindent4}}annotations:"helm.sh/hook&qu......