网络编程实验一


一、实验目的:

1、  熟悉相关编程函数的功能、用法与特性。

2、  熟练运用地址转换函数及清楚转换前后IP地址格式的变化。


二、实验内容

理解程序同时写出程序输出内容含义。

  • 字符串copy
  • 内存和字符串copy命令比较
  • 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实验四 &quot;Java网络编程及安全&quot;

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对象,用来连接特定服务器的指定端口,输入的参数