黑客实验二基于tcp的客户端服务端通信socket编程

黑客实验二基于tcp的客户端服务端通信socket编程

ID:3665018

大小:531.00 KB

页数:15页

时间:2017-11-22

黑客实验二基于tcp的客户端服务端通信socket编程_第1页
黑客实验二基于tcp的客户端服务端通信socket编程_第2页
黑客实验二基于tcp的客户端服务端通信socket编程_第3页
黑客实验二基于tcp的客户端服务端通信socket编程_第4页
黑客实验二基于tcp的客户端服务端通信socket编程_第5页
资源描述:

《黑客实验二基于tcp的客户端服务端通信socket编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、昆明理工大学信息工程与自动化学院学生实验报告(2010—2011学年第2学期)课程名称:黑客攻防开课实验室:信自楼4452011年4月25日年级、专业、班学号姓名成绩实验项目名称Socket编程指导教师教师评语教师签名:年月日一、实验目的及内容目的:掌握TCP/IPSocket网络安全编程概念,并完成简单程序的Socket实现。内容:黑客技术与网络攻防(三选二)基于TCP的客户端/服务端通信编程网络抓包程序的SOCKET实现主机扫描和端口扫描的SCOKET实现二、所用仪器、材料硬件:PC机软件:WindowsServer操

2、作系统一个VC++开发平台三、实验原理Socket网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。1、基于TCP的客户端/服务端通信编程Socket通讯的过程-15-Server端Listen(监听)某个端口是否有连接请求,Client端向Server端发出Connect(连接)请求,Server端向Client端发回Acce

3、pt(接受)消息。一个连接就建立起来了。Server端和Client端都可以通过Send,Write等方法与对方通信。对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:创建Socket;打开连接到Socket的输入/出流;按照一定的协议对Socket进行读/写操作;关闭Socket。1、主机扫描和端口扫描的SCOKET实现流程图如下:扫描主机活动状态流程图端口扫描流程图-15-四、实验过程原始记录数据1、基于TCP的客户/服务区————服务器代码importjava.io.*;impo

4、rtjava.net.*;importjava.applet.Applet;publicclassTalkServer{publicstaticvoidmain(Stringargs[]){try{ServerSocketserver=null;try{server=newServerSocket(4700);//创建一个ServerSocket在端口4700监听客户请求}catch(Exceptione){System.out.println("cannotlistento:"+e);//出错,打印出错信息}Socket

5、socket=null;try{socket=server.accept();//使用accept()阻塞等待客户请求,有客户//请求到来则产生一个Socket对象,并继续执行}catch(Exceptione){System.out.println("Error."+e);//出错,打印出错信息}Stringline;BufferedReaderis=newBufferedReader(newInputStreamReader(socket.getInputStream()));-15-//由Socket对象得到输入流,

6、并构造相应的BufferedReader对象PrintWriteros=newPrintWriter(socket.getOutputStream());//由Socket对象得到输出流,并构造PrintWriter对象BufferedReadersin=newBufferedReader(newInputStreamReader(System.in));//由系统标准输入设备构造BufferedReader对象System.out.println("Client:"+is.readLine());//在标准输出上打印从客

7、户端读入的字符串line=sin.readLine();//从标准输入读入一字符串while(!line.equals("bye")){//如果该字符串为"bye",则停止循环os.println(line);//向客户端输出该字符串os.flush();//刷新输出流,使Client马上收到该字符串System.out.println("Server:"+line);//在系统标准输出上打印读入的字符串System.out.println("Client:"+is.readLine());//从Client读入一字符串,

8、并打印到标准输出上line=sin.readLine();//从系统标准输入读入一字符串}//继续循环os.close();//关闭Socket输出流is.close();//关闭Socket输入流socket.close();//关闭Socketserver.close();//关闭ServerSoc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。