一、实验目的: 1、 熟悉相关编程函数的功能、用法与特性。 2、 熟练运用地址转换函数及清楚转换前后IP地址格式的变化。 |
二、实验内容 理解程序同时写出程序输出内容含义。
|
三、代码设计 字符串copy: #include<stdio.h> #include<string.h> main() { char a[30]="string(1)"; char b[]="string(2)"; printf("before strcpy() :%s\n",a); printf("after strcpy() :%s\n",strcpy(a,b)); } 内存和字符串copy命令比较: #include<stdio.h> #include<string.h> main() { char a[30]="string (a)"; char b[30]="string1\0string"; int i; strcpy(a,b); printf("strcpy():%s",a); printf("\nstrcpy():"); for(i=0;i<30;i++) printf("%c",a[i]); memcpy(a,b,30); printf("\nmemcpy() :"); for(i=0;i<30;i++) printf("%c",a[i]); printf("\n"); return; } IP地址转换: #include<stdio.h> #include<string.h> #include<netinet/in.h> #include<arpa/inet.h> int main(int argc,char* argv[]) { struct in_addr addr1,addr2; unsigned long l1,l2; char *p1,*p2; int i; l1=inet_addr("192.168.0.74"); l2=inet_addr("211.100.21.179"); printf("%u\n",l1); for(i=0;i<4;i++) { printf("%02x",*((unsigned char*)(&l1)+i)); } printf("\n"); printf("%u \n",l2); for(i=0;i<4;i++) { printf("%02x",*((unsigned char*)(&l2)+i)); } printf("\n"); memcpy(&addr1,&l1,4); memcpy(&addr2,&l2,4); printf("%s\n",inet_ntoa(addr1)); printf("%s\n",inet_ntoa(addr2)); p1=inet_ntoa(addr1); p2=inet_ntoa(addr2); printf("%s \n",p1); printf("%s \n",p2); return 0; }
|
四、实验分析与总结 结果1: 利用strcpy()函数将b字符串拷贝到a数组中,返回结果为拷贝后的结果。输出的第一行是拷贝之前的原数组a,第二行是拷贝之后的a数组,被b数组完全覆盖了。 结果2: 利用memcpy()函数同样实现拷贝功能,a是拷贝的位置,b是拷贝的位置,30是长度。’\0’即结束。输出的第一行输出的是用strcpy()函数拷贝后的a数组——被b数组全部覆盖了,a数组的长度不变。第二行是for循环中\0不输出,并不结束。第三行是输出mencpy()函数将b数组函数完全拷贝到a数组,a数组的长度会变成b数组,所以拷贝的是全部的b数组。 结果3: inet_addr函数将字符串形式的IP地址转换成32位二进制值的IP地址。memcpy 函数将存放在l1,l2中的32位二进制IP地址存放到addr1,addr2中并输出。inet_ntoa函数将32位网络字节序的二进制IP地址转换成相应的点分十进制的IP地址。第一行和第三行是输出了经过inet_addr函数转换后的二进制值以无符号的形式输出。第二行和第四行是将二进制值强制转换成无符号数,再以2位的十六进制输出。第五行和第六行再用inet_ntoa函数将地址转换成十进制地址并输出。第七行和第八行输出与第六行一样,是因为返回值所指向的字符串还留在静态内存中,函数是不可重入的,所以输出还是原来的那样。
|
网络编程实验一
时间: 2024-11-06 03:35:24
网络编程实验一的相关文章
网络编程实验2_(1)实验内容
一.实验内容 基于流式套接字的回射客户端设计 二.实验要求 本实验是程序设计类实验,要求使用流式套接字编程实现回射客户端,该客户端能够从控制台获取用户输入,具备发送和接收数据的功能.具体要求如下: • 完成客户端TCP连接建立过程: • 完成客户端基于TCP的数据发送与接收功能: 原文地址:https://www.cnblogs.com/cyx-b/p/12446086.html
网络编程实验二
Part 1: 实验目的掌握sockaddr_in 应用的三个步骤,并能熟练运用过程中相关函数. Part2:实验内容 1 1 #include<stdio.h> 2 2 #include<stdlib.h> 3 3 #include<string.h> 4 4 #include<unistd.h> 5 5 #include<sys/types.h> 6 6 #include<sys/socket.h> 7 7 #include<
20145301实验五 Java网络编程及安全
北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:30 实验名称:实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客户端 4.客户端用RSA公钥密码中服务器的私钥解密DES的,秘钥,用秘钥对密文进行解密,得出明文.计算
Java课程实验报告 实验四 Java网络编程及安全
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1352 姓名:吕松鸿 学号:20135229 成绩: 指导教师:娄嘉鹏 实验日期:2015.6.9 实验密级: 预习程度: 实验时间:15:50--20:50 仪器组次:29 必修/选修: 选修 实验序号:04 实验目的
20145311实验四 ";Java网络编程及安全";
20145311实验四 "Java网络编程及安全" 程序设计过程 实验内容 ·掌握Socket程序的编写:·掌握密码技术的使用:·设计安全传输系统 ·利用加解密代码包,编译运行代码,一人加密,一人解密:·集成代码,一人加密后通过TCP发送: 实验步骤 在这之前进行了一个socket连接的例子:用百度做了个实验 下面是两人合作进行RSA的加密: 首先建立一个Socket对象,用来连接特定服务器的指定端口(我负责的是服务器端,郑凯杰负责的是客户端,所以也就是输入我这边的ip地址),输入的参
20145331实验五 Java网络编程及安全
实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴:20145333赵嘉鑫 博客地址:http://home.cnblogs.com/u/5301z/ 5.分工:自己负责服务端,伙伴负责客户端 实验要求 1.基于Java Socket实现安全传输 2.基于TCP实现客户端和服务器,结对编程一人负责客户端,一人负责服务器 3.使用Git进行版本控制 4.选择对称算法进行数据加解密. 5.选择非对称算法对对称加密密
实验五 Java网络编程及安全
北京电子科技学院 实 验 报 告 课程:移动平台应用开发实践 班级:201592 姓名:曾俊宏 学号:20159210 成绩:___________ 指导老师:娄嘉鹏 实验日期 :2015.10.25 实验名称: Java 网络编程及安全 实验内容: 1.掌握 Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 我的实验搭档是蔡斌思 http://www.
实验五Java网络编程及安全——20135337朱荟潼
实验五 Java网络编程及安全 结对伙伴:20135317韩玉琪(负责服务器方)http://www.cnblogs.com/hyq20135317/p/4567241.html 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全 实验步骤 1.信息安全传送: 发送方A——————>接收方B A加密时,用B的公钥 B解密时,用B的私钥 发送方A对信息(明文)采用DES密钥加密,使用RSA加密前面的DES密钥信息,最终将混合信息进行传递.同时用hash函数将明文进行
实验五 网络编程及安全
实验五 网络编程与安全 一.实验内容: 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者DES/AES或者DES加密密钥key并发送,使用服务器的公钥加密/公钥算法使用RSA或DH/检验发送信息的完整性使用MD5或者SHA3: 4.用Git进行版本控制. 5.完成Blog 二.实验步骤: 1.首先建立一个Socket对象,用来连接特定服务器的指定端口,输入的参数