计算机网络编程课程设计文档格式.docx
《计算机网络编程课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《计算机网络编程课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
(3)配置并启动套接字。
(4)通过Socket发送和接收数据。
(5)程序结束时必须关闭Socket,使用与WSAStartUp()相对应的函数WSACleanUp(),释放所分配的内部缓冲区和其他资源。
代码:
EchoThreadServer:
import.*;
publicclassEchoThreadServer{
publicstaticvoidmain(String[]args)throwsException{
tart();
}
();
}
}
EchoThread:
importclassEchoThreadimplementsRunnable{
privateSocketclient=null;
publicEchoThread(Socketclient)
{
=client;
publicvoidrun()
BufferedReaderbuf=null;
PrintStreamout=null;
BufferedReaderinput=null;
try{
out=newPrintStream());
buf=newBufferedReader(newInputStreamReader()));
input=newBufferedReader(newInputStreamReader);
booleanflag=true;
while(flag)
{
Stringstr=();
"
Client:
"
+str);
if(str==null||"
.equals(str)){
flag=false;
}
elseif("
goodbye"
else{
("
Echo:
}
();
}catch(Exceptione){
quals(str)){
flag=false;
else{
Stringecho=();
}
5、课程设计结果截图:
服务器端截图:
客户端截图:
6、课程设计总结:
课题二:
端口扫描
1.加深对课堂讲授知识的理解;
2.熟练的掌握基本的网络编程技术和方法;
3.建立网络编程整体概念;
4.培养具有研究、设计、编制和调试网络程序的能力。
XP或win7系统;
3、课程设计原理:
1.端口扫描器功能简介:
服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。
扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET服务和HTTPD服务等。
2.实验所用的端口扫描技术:
端口扫描技术有TCPconnect()扫描、TCPSYN扫描、TCPFIN扫描、IP段扫描等等。
本次实验所用的技术是TCPconnect()扫描,这是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么connect()就能成功。
否则,这个端口是不能用的,即没有提供服务。
这个技术的一个最大的优点是,你不需要任何权限。
系统中的任何用户都有权利使用这个调用。
编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。
基本工作过程如下:
(1)设定好一定的端口扫描范围;
(2)设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;
(3)创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;
(4)如果返回false,表示端口没有开放,否则端口开放。
实现代码:
packageclassSocketView{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame("
主机端口扫描程序"
);
(newBorderLayout(3,3));
JPanelpan1=newJPanel();
JPanelpan2=newJPanel();
JPanelpan3=newJPanel();
(newGridLayout(2,2,5,5));
(newGridLayout(1,2,5,5));
(400,450);
//定义各个组件
JLabellb1=newJLabel("
HostAddress"
JLabellb2=newJLabel("
PortNumber"
JLabellb3=newJLabel("
PortStatus"
finalJTextFieldjf1=newJTextField();
finalJTextFieldjf2=newJTextField();
finalJTextAreaja=newJTextArea();
JButtonjb1=newJButton("
TCPScan"
JButtonjb2=newJButton("
UDPScan"
JScrollPanejp=newJScrollPane(ja);
(lb1);
(lb2);
(jf1);
(jf2);
(lb3,;
(jp,;
(jb1);
(jb2);
(pan1,;
(pan2,;
(pan3,;
;
(true);
(newSocketPort());
classSocketPortimplementsActionListener{
privateStringip=();
;
privateStringhostname=newString();
publicvoidactionPerformed(ActionEvente){
try{
InetAddressaddress=(ip);
hostname=();
(hostname);
}catch(Exceptionexception){
"
Couldnotfind"
+ip);
PrintWriterfout=newPrintWriter(newFileWriter("
));
InformationOfThePortOnthe"
+hostname+"
computer"
();
computer"
for(intnport=25;
nport<
27;
++nport){
try{
Sockets=newSocket(hostname,nport);
("
Theport"
+nport+"
isopen!
Connectedto"
+()+"
onport"
+()+"
fromport"
of"
+());
}catch(Exceptionexception){
//TODO:
handleexception
isclosed!
}
}
();
6、
7、课程设计总结
课题三:
捕获分析IP数据包
1.掌握IP数据报的格式;
2.理解IP协议的工作原理及工作过程;
3.学会网络编程的方法和技巧。
2.以太网,可以访问外部网页;
3