计算机网络编程课程设计
- 格式:docx
- 大小:226.79 KB
- 文档页数:12
课题一:基于TCP的Socket通讯编程
一、课程设计目的:
1.能够深刻了解socket编程思想;
2.从实现层面理解TCP和UDP链接的不同。
二、课程设计环境:
1.windows XP或 win7 系统;
2.配置有java虚拟机的环境变量;
3.编写java程序的软件Eclipse。
三、课程设计原理:
Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。
此外,在一个特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。
因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。
遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的,而Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。
一个网络软件供应商必须百分之百地实现Windows Sockets规范才能做到现Windows Sockets兼容。
四、课程设计内容:
(1)网络程序初始化,服务器和客户端WinSock API均要求在调用其他WinSock函数以前先调用WSAStartUp函数初始化。
(2)创建套接字Socket()。
(3)配置并启动套接字。
(4)通过Socket发送和接收数据。
(5)程序结束时必须关闭Socket,使用与WSAStartUp()相对应的函数WSACleanUp(),释放所分配的内部缓冲区和其他资源。
代码:
("Echo:" + str);
}
}
();
} catch (Exception e) {
quals(str)) {
flag = false;
}
else {
String echo = ();
}
}
();
();
}
}
五、课程设计结果截图:
服务器端截图:
客户端截图:
六、课程设计总结:
课题二:端口扫描
一、课程设计目的:
1.加深对课堂讲授知识的理解;
2.熟练的掌握基本的网络编程技术和方法;
3.建立网络编程整体概念;
4.培养具有研究、设计、编制和调试网络程序的能力。
二、课程设计环境:
XP或 win7 系统;
2.配置有java虚拟机的环境变量;
3.编写java程序的软件Eclipse。
三、课程设计原理:
1.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。
扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的 FTP 目录、是否开放TELNET 服务和 HTTPD 服务等。
2.实验所用的端口扫描技术:端口扫描技术有 TCP connect()扫描、 TCP SYN 扫描、TCP FIN 扫描、IP段扫描等等。
本次实验所用的技术是TCP connect()扫描,这是最基本的TCP扫描,操作系统提供的 connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么connect()就能成功。
否则,这个端口是不能用的,即没有提供服务。
这个技术的一个最大的优点是,你不需要任何权限。
系统中的任何用户都有权利使用这个调用。
四、课程设计内容:
编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。
基本工作过程如下:
(1)设定好一定的端口扫描范围;
(2)设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;
(3)创建 socket,通过socket的connect方法来连接远程IP地址以及
对应的端口;
(4)如果返回false,表示端口没有开放,否则端口开放。
五、课程设计结果截图:
六、
七、课程设计总结
课题三:捕获分析IP数据包
一、课程设计目的:
1.掌握IP数据报的格式;
2.理解IP协议的工作原理及工作过程;
3.学会网络编程的方法和技巧。
二、课程设计环境:
1.windows XP或 win7 系统;
2.以太网,可以访问外部网页;
3.VC程序编辑器。
三、课程设计原理:
IP 数据包的格式说明IP数据包格式包含了标头固定部分,标头可变部分和数据区三部分。
IP数据报标头部分固定为20个字节,其中包含了12个参数域,各参数域隐含着网间协议的传输机制。
IP具体的标头格式如图所示。
四、课程设计内容:
本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。
程序的具体要求如下:
(1)捕获网络中的IP数据包,解析数据包的内容,显示结果,并将结果写入日志文件。
(2)显示的内容包括:捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
(3)设置停止标志,当程序接收到停止命令时即停止。
#include <>
#pragma comment( lib, "" );
struct ether_header
{
u_int8_t ether_dhost[6];
u_int8_t ether_shost[6];
u_int16_t ether_type;
};
typedef u_int32_t in_addr_t;
/*struct in_addr
{
in_addr_t s_addr;
};*/
struct ip_header
五、课程设计结果截图:
六、课程设计总结:
七、主要参考资料:
[1]谢希仁.计算机网络[M].第5版.北京:电子工业出版社,2008.
[2]张基温.Visual C++程序开发基础[M].北京:高等教育出版社,2001.
[3]f15瑞.Visual c++网络通信程序开发指南[M].北京:机械工业出
版社,2004.。