计算机网络编程课程设计报告文献_第1页
计算机网络编程课程设计报告文献_第2页
计算机网络编程课程设计报告文献_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题一:基于TCP的Socket通讯编程一、课程设计目的:.能够深刻了解socket编程思想;.从实现层面理解TCP和UDP的不同。二、课程设计环境:. windows XP 或 win7 系统;.配置有java虚拟机的环境变量;.编写java程序的软件Eclipse0三、课程设计原理:Windows Sockets规本意在于提供给应用程序开发者一套简单的API, 并让各家网络软件供应商共同遵守。此外,在一个特定版本晅ndows的基础 上,Windows Sockets也定义了一个二进制接口 (ABI),以此来保证应用 Windows Sockets API的应用程序能够在任何网络软件供应商的

2、符合Windows Sockets协议的实现上工作。因此这份规定义了应用程序开发者能够使用, 并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套 Windows Sockets规的网络软件,我们称之为Windows Sockets兼容的,而 Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。 一个网络软件供应商必须百分之百地实现Windows Sockets规才能做到现 Windows Sockets 兼容。四、课程设计容:(1)网络程序初始化,服务器和客户端WinSock.API均要求在调用其他 WinSock函数以前先调用WSASt

3、artUp函数初始化。(2)创建套接字Socket。(3)配置并启动套接字。(4)通过Socket发送和接收数据0(5)程序结束时必须关闭Socket,使用与WSAStartUpO相对应的函数 WSACleanUpO,释放所分配的部缓冲区和其他资源。代码:EchoThreadServer:import java. net. *;public class EchoThreadServer public static void main(String args) throws Exception ;/ TODO Auto-generated method stubServerSocket serv

4、er = null;Socket client = null;InetAddress remAdd = null;server = new ServerSocket(12345);boolean f = true;while (f) System, out. printin(连接正在建立,请等待);client = server, accept ();System, out. print In (M客户端的IP地址和端口号是:+ client, getLocalSocketAddress();new Thread(new EchoThread(client).start ();)server,

5、 close ();EchoThread:import java. io. *;import java. net. Socket;public class EchoThread implements Runnableprivate Socket client = null;public EchoThread(Socket client)this, client = client;public void run()BufferedReader buf = null;PrintStream out = null;BufferedReader input = null;try (out = new

6、PrintStream(client. getOutputStreamO);buf=newBufferedReader(newInputStreamReader(client. getlnputStreamO);input=newBufferedReader(newInputStreamReader(System, in);boolean flag = true ;while (flag) String str = buf. readLineO ;System, out. println(,rClient: ,r + str); if (str = null I | equals (str)

7、flag = false;)else if (,,goodbye, equals (str) flag = false;else out. printin(MEcho:M + str); )client, close(); catch (Exception e) / TODO: handle exception) EchoClient:import java. io. BufferedReader;import java. io. InputStreamReader;import java. io. PrintStream;import java. net. Socket;public cla

8、ss EchoClient public static void main(String args) throws ExceptionSocket client = null;client = new Socket (,rlocalhost,f, 12345);BufferedReader buf = null;PrintStream out = null;BufferedReader input = null;input = new BufferedReader(new InputStreamReader(System, in); buf=newBuf f eredReader(newInp

9、utStreamReader(client. getlnputStreamO);out = new PrintStream(client. getOutputStreamO); boolean flag = true; while(flag) System, out. print In (客户端输入信息:);String str = input. readLineO ; out. println(str);if (Hgoodbyer,. equals (str) flag = false;else String echo = buf. readLineO ; System, out. prin

10、t In(echo);)buf. close ();client. close();)五、课程设计结果截图:服务器端截图:BSS: C:Window$.$.y5tem3-Acmd.exe - java EchoThreadServer;Bdo3工【版本 6.1.7GH11极权所有 2007 Microsoft Corporation 保留所有权利eC: Us ers hd:ft:cd test&: Xtestjauae Echolhi*adServe. jaua氏.朽 建相场E .址,f ua立地互乏Ja建IP建昨 0169正课正n-t xt接P接IC D:注客注clM待口待!客户端截图:C:

11、W;rtddV/syste22CMD.exe - jav EehoClierttMicrosoft Windows 6.1.7601 J版权所有Cc2009 Microsoft Ccnporation .保图所有权利CsxJUscrsshanchenJd:r = Vcfl testD:t3tjavac EchaGlicntwjavaD:testJaua EchoClicnt熊端舲露六、课程设计总结:课题二:端口扫描一、课程设计目的:.加深对课堂讲授知识的理解;.熟练的掌握基本的网络编程技术和方法;.建立网络编程整体概念;.培养具有研究、设计、编制和调试网络程序的能力。二、课程设计环境:. wi

12、ndows XP 或 win7 系统;.配置有java虚拟机的环境变量;.编写java程序的软件Eclipseo三、课程设计原理:.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道, 也就是一个入 侵通道。对目标计算机进行端口扫描,能得到许多有用的信 息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软 件进行。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予 的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例 如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放 TELNET服务和HTTPD服务等。.实验所用的端口扫描技术:端口

13、扫描技术有TCP connect。扫描、TCP SYN扫描、TCP FIN扫描、IP段扫描等等。本次实验所用的技术是TCP connect。扫描,这是最基本的TCP扫描,操作系统提供的connect。系统调 用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦 听状态,那么connect。就能成功。否则,这个端口是不能用的,即没有提 供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何 用户都有权利使用这个调用。四、课程设计容:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个 或某些端口是否正在工作。基本工作过程如下:设定好一定的端口扫描围;设定每个

14、端口扫描的次数,因为有可能有的端口一次扫描可能不通;(3)创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;(4)如果返回false,表示端口没有开放,否则端口开放。实现代码:package .han. socket; import java. awt. BorderLayout;import java. awt. GridLayout;import java. awt. event. ActionEvent;import java. awt. event. ActionListener;import java. net. InetAddress;impo

15、rt java. net. Socket;import javax. swing. JButton;import javax. swing. JFrame;import javax. swing. JLabel;import javax. swing. JPanel;import javax. swing. JScrollPane;import javax. swing. JTextArea;import javax. swing. JTextField;public class SocketView public static void main(String args) JFrame fr

16、ame = new JFrame (主机端口 扫描程序); frame. setLayout (new BorderLayout (3);JPanel panl = new JPanel ();JPanel pan2 = new JPanel ();JPanel pan3 = new JPanel ();panl. setLayout(new GridLayout (2,2,5,5);pan2. setLayout (new BorderLayout (3);pan3. setLayout(new GridLayout (112,5,5);定义各个组件JLabel Ibl = newJLabe

17、l lb2 = newframe. setSize(400, 450);JLabel (,rHost Address11); JLabel (,rPort Number);JLabel lb3 = new JLabel (,rPort Status); final JTextField jf1 = new JTextField(); final JTextField jf2 = new JTextField(); final JTextArea ja = new JTextArea(); JButton jbl = new JButton(,rTCP Scan);JButton jb2 = n

18、ew JButton(,rUDP Scan);fout. printin(Connectedto +s. getlnetAddress () + “ on port + s. getPort () + “ from port + s. getLocalPort () + “ of + s. getLocalAddress ();ja. setText (HThe port + nport + is open!,r);ja. setText(HConnected to + s. getlnetAddress () + on port + s. getPort () + ” from port +

19、 s. getLocalPort () + of ” + s. getLocalAddress (); catch (Exception exception) / TODO: handle exceptionfout. println(HThe port + nport + “ is closed!”);ja. setText (HThe port + nport + is closed!,r); fout. close(); catch (Exception exception) exception. printStackTrace(); )五、课程设计结果截图:国主机流口扫描程序H回修占H

20、ostAddressPort Number忸,能 255,13888Port StatusCound. not find the ip:59.68. 255. 138The port 88 in ike ip 59.68. 255. 138 is closed!TCP ScanUDP Scan七、课程设计总结课题三:捕获分析IP数据包一、课程设计目的:.掌握IP数据报的格式;.理解IP协议的工作原理及工作过程;.学会网络编程的方法和技巧。二、课程设计环境:windows XP 或 win7 系统;以太网,可以访问外部网页;VC程序编辑器。三、课程设计原理:IP数据包的格式说明IP数据包格式包含

21、了标头固定部分,标头可变部分 和数据区三部分。IP数据报标头部分固定为20个字节,其中包含了 12个参 数域,各参数域隐含着网间协议的传输机制。IP具体的标头格式如图所示。陆#4位苜部长4忖欣本堡15-服务类型(Kfc;1。何总长度C?节为小佗;163位标志13位片偏移8位生存时间(m.;16位首部构腌和32位源W地址32位目的IP地址四、课程设计容:本设计的目标是捕获网络中的IP数据包,解析数据包的容,将结果显示 在标准输出上,并同时写入日志文件。程序的具体要求如下:(1)捕获网络中的IP数据包,解析数据包的容,显示结果,并将结果 写入日志文件。(2)显示的容包括:捕获的IP包的版本、头长度

22、、服务类型、数据包 总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、 头校验和、源IP地址和目的IP地址等容。(3)设置停止标志,当程序接收到停止命令时即停止。代码:#include ttpragma comment( lib, Ws2_32. lib);struct ether header( -u int8 t ether_dhost6j;u int8 t ethershost6;u_intl6_t ether_type;typedef u int32_t in_addr_t;/struct in_addr( -in_addr_t s_addr;);*/ struct i

23、pheader(#ifdef W()RDS_BIGENDIANu_int8 t ip_version:4;u int8 t i p header_ 1 eng th : 4 ;#elseu_int8 t ip header 1ength:4;u_int8 t ip version:4;ttendifu_int8 t iptos;u_int!6 t ip length;u_int!6 t ip id;u_int!6 t ip off;u_int8 tu_int8 t ip_protocol;u_int!6 t ip checksum;struct in_addr ip_source_addres

24、s;struct in_addr ip destinationaddress;); 一void ip_protocol_packet_calIback(u char * argument,const pcap_pkthdr * packet, header,const u char * packet_content)( struct ipheader * ip_protocol;u_int header length;uint offset;u_char tos;u_int!6 t checksum;ip_protocol=(struct ip header*)(packet_content+

25、14);checksum=ntohs(ip_protocol-ip checksum);header length=ip_protocol-ip header length*4;tos=ip_protocol-ip_tos;offset=ntohs(ip_protocol-ip off);printf (,Fip 协议包printf(版本:%dn,ip_protocol-ip_version);printf (首部长度:%dn, header length);printf (服务类型:%dn tos);printf (总长度:%dn”,ntohs(ip_protocol-ip length);

26、printf (标识:%dn,r,ntohs(ip_protocol-ip_id);printf (偏移:%dn, (offset&Oxlfff) *8);printf (生存时间:dn, ip_protocol-ip ttl);printf (协议:dn, ip_protoco 1 -ip_protoco 1);switch(ip_protocol-ip_protocol)(case 6:printf (该数据包协议类型是Tcpnr);break;case 17:printf (该数据包协议类型是Udpnw);break;case 1:printf (该数据包协议类型是Icmpnr);str

27、uctbreak;default:break;printf (校验和:dn, checksum);address);地printf (源地址 :%sn,r, inet_ntoa(ip_protocol-ip sourceprintf (,r址 :sn”,inet ntoa(ip_protocol-ip destination address);) void ethernet_protocol_packet_calIback(u char *argument,const struct pcap_pkthdr * packetheader,const u char * packet_content

28、)u short ethernet_type;struct ether header *ethernet_protocol;u_char *mac_string;static int packet_number=l;pr i nt f (*n);printf (,r the %d packet is captured n,r,packet number);printf (,rn);ethernet_protocol=(struct ether header *)packet_content;printf (以太网帧类型:);ethernet_type=ntohs(ethernet_protoc

29、ol-ether_type);printf (飞04xn”,ethernet_type);switch(ethernet_type)case 0 x0800:printf (网络层协议是break;case 0 x0806:printf (网络层协议是break;case 0 x8035:printf (网络层协议是break;default:break;printf (,fMAC 源地址:”);ip 协议n”);arp 协议n);rarp 协议n);mac_string=ethernet_protocol-ether_shost;printf (,r%02x: %02x: %02x: %02

30、x: %02x: %02xn,r, *mac_string, *(mac_string+l), *(mac_string+2),*(mac string+3),*(mac string+4),*(mac string+5);printf (,rMAC 目的地址:);mac_string=ethernet_protocol-ether dhost;pr intf (n%02x : %02x : %02x : %02x : %02x : %02xn,r, *mac_str ing, * (mac_str ing+1), *(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5);switch(ethernet_type)( case0 x0800ip_protocol_packet_cal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论