首页 > 其他分享 >计网实验4

计网实验4

时间:2024-10-21 19:47:45浏览次数:1  
标签:SOCKET int 计网 revData sentData 实验 printf sin

#include <winsock2.h>
#include <stdio.h>
#include <string.h>
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
	//初始化WSA
	WORD sockVersion = MAKEWORD(2,2);
	WSADATA wsaData;
	if(WSAStartup(sockVersion, &wsaData)!=0)
	{
		return 0;
	}
	//创建套接字
	SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(slisten == INVALID_SOCKET)
	{
		printf("socket error !");
		return 0;
	}
	 //绑定IP和端口
	sockaddr_in sin;
	sin.sin_family = AF_INET;
	sin.sin_port = htons(5264);
	sin.sin_addr.S_un.S_addr = INADDR_ANY; 
	if(bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
	{
		printf("bind error !");
	}
	//开始监听
	if(listen(slisten, 5) == SOCKET_ERROR)
	{
		printf("listen error !");
		return 0;
	}
	SOCKET sClient;
	sockaddr_in remoteAddr;
	int nAddrlen = sizeof(remoteAddr);
	char revData[255];
	printf("等待连接...\n");
	sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);
	if(sClient == INVALID_SOCKET)
	{
		printf("accept error !");
		closesocket(sClient);
		closesocket(slisten);
		WSACleanup();
		return 0;
	}
	printf("接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));
	//接收数据
	while(1){
		int ret = recv(sClient, revData, 255, 0); 
//		if(strcmp(revData,"ByeBye")==0) break;
		if(ret > 0)
		{
			revData[ret] = 0x00;
			int len=strlen(revData);
			if(strcmp(revData,"ByeBye")==0) break;
			printf("加密后:%s\n翻转加密后:",revData);
	//		int len=strlen(revData);
			for(int i=len-1;i>=0;i--){
				printf("%c",revData[i]);
			} 			
			for(int i=0;i<len;i++){
				revData[i]=(revData[i]-1)%256;
			}
			printf("\n解密后:%s",revData);
		}
		printf("\n");
		//发送数据
		char sendData[255];
		puts("请输入传输数据");
		gets(sendData);
		
		send(sClient, sendData, strlen(sendData), 0);	
		if(strcmp(sendData,"ByeBye")==0) break;
		
	}

	closesocket(sClient);
	closesocket(slisten);
	WSACleanup();
	return 0;
}

#include <winsock2.h>
#include <stdio.h>
#include <string.h>
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
	WORD sockVersion = MAKEWORD(2,2);
	WSADATA data;
	if(WSAStartup(sockVersion, &data) != 0)
	{
		return 0;
	}
	SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(sclient == INVALID_SOCKET)
	{
		printf("invalid socket !");
		return 0;
	}
	sockaddr_in serAddr;
	serAddr.sin_family = AF_INET;
	serAddr.sin_port = htons(5264);
	serAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
	if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr)) == 
	SOCKET_ERROR)
	{
		printf("connect error !");
		closesocket(sclient);
		return 0;
	}
	while(1){
		char sentData[255];
		puts("请输入传输数据");
		gets(sentData);
		if(strcmp(sentData,"ByeBye")!=0){
			for(int i=0;sentData[i]!='\0';i++){
				sentData[i]=(sentData[i]+1+256)%256;
			}			
		}
		send(sclient, sentData, strlen(sentData), 0);
		if(strcmp(sentData,"ByeBye")==0) break;
		char recData[255];
		
		int ret = recv(sclient, recData, 255, 0);
		
		if(ret > 0)
		{
			recData[ret] = 0x00;
			if(strcmp(recData,"ByeBye")==0) break;
			printf(recData);
		}
		printf("\n");		
	}

	closesocket(sclient);
	WSACleanup();
	return 0;
}

标签:SOCKET,int,计网,revData,sentData,实验,printf,sin
From: https://www.cnblogs.com/mono-4/p/18490167

相关文章

  • JavaWeb:实验一JSP运行环境安装及配置
    **制作一个静态网站的基本页面index.html,要求如下:1.页面布局采用框架实现,页面布局及样式如图1所示。**2.在页面的A部分显示显示“登录”和“注册”链接。单击“登录”链接,在C部分显示登录页面,登录页面包含一个HTML表单,页面参考样式如图2所示;单击“注册”链接,在C部分显示注册页面......
  • C++程序设计基础实验1
    任务一:源代码task1.cpp#include<iostream>#include<string>#include<vector>#include<algorithm>usingnamespacestd;//声明//模板函数声明template<typenameT>voidoutput(constT&c);//普通函数声明voidtest1();voidtest2();void......
  • 20222320 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    目录目录目录0.认识工具Veil1.实验目标2.实验内容3.实验过程(1)使用msf编码器,使用msfvenom生成如jar之类的其他文件(2)使用veil加壳工具加壳(3)使用C+shellcode编程(4)通过组合应用各种技术实现恶意代码免杀(5)用另一电脑实测,在杀软开启的情况下,可运行并回连成功4.问题及解决方案5.学习感......
  • 《网络与系统攻防技术》实验三实验报告
    1.实践内容(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程(2)通过组合应用各种技术实现恶意代码免杀如果成功实现了免杀的,简单语言描述原理,不要截图。与杀......
  • 20222425 2024-2025-1《网络与系统攻防技术》 实验二实验报告
    目录1.实验内容2.实验问题3.实验过程3.1windows下使用netcat获取kali的Shell,用cron命令启动某项任务3.1.1使用netcat获取kali的shell3.1.2用cron命令启动某项任务3.2kali下使用socat获取windows的Shell,用schtasks命令创建并启动某项任务计划3.2.1实验准备3.2.2......
  • 【智能大数据分析 | 实验四】Spark实验:Spark Streaming
    【作者主页】FrancekChen【专栏介绍】⌈⌈⌈智能大数据分析⌋......
  • 20222323 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1实践目标(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件veil,加壳工具使用C+shellcode编程(2)通过组合应用各种技术实现恶意代码免杀(3)用另一电脑实测,在杀软开启的情况下,可......
  • 流量分类实验
    源代码:【免费】网络测量实验之流量分类实验源代码资源-CSDN文库实验背景决策树就像一棵树,从根节点开始,每个节点都是一个判断条件,每个分支代表一个选择。沿着树的路径,直到叶子节点,得到的类别就是最终的决策结果。以下是决策树算法的流程:1.选择判断条件:首先,我们需要选择一个......
  • 【计网笔记】数据链路层
    向上提供透明接口向下将比特流拆分为若干个帧,为每个帧计算校验和接收端基于校验和检查帧内的比特差错向上网络层接口无确认的无连接服务以太网无需逻辑连接双方无需确认有确认的无连接服务IEEE802.11(WiFi)无需逻辑连接接收方确认收到帧发送方如果超时未确认,就重新......
  • 【计网笔记】以太网
    经典以太网总线拓扑物理层Manchester编码数据链路层MAC子层MAC帧DIX格式与IEEE802.3格式IEEE802.3格式兼容DIX格式前导码(+帧开始定界符SOF)8字节前7字节均为0xAA第8字节为0xAB前7字节的Manchester编码将产生稳定方波,用于校准时钟周期目的地址6字节目的......