计算机网络——实验4

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

淮海工学院计算机工程学院实验报告书课程名:《计算机网络》题目:实验四综合实验班级:Z软件161学号:2018140539姓名:陈真杰评语:成绩:指导教师:批阅时间:年月日《计算机网络》实验报告-1-一、实验目的理解和巩固传输层与套接字的基本知识,掌握利用套接字实现面向连接的数据传输的一般方法,深入理解客户/服务器工作模式,学会简单的客户/服务器程序的开发。二、实验内容利用Java语言提供的Socket技术,建立一个C/S模式的应用,允许客户端用户输入2个整数,服务器端接收这2个整数,并计算出它们的和、差、积、商,最后送回客户端。三、实验步骤1.服务器端代码如下所示。importjava.io.*;importjava.net.*;importjava.applet.Applet;importjava.util.Date;importjava.text.SimpleDateFormat;publicclassServer{publicstaticvoidmain(Stringargs[]){try{SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);//设置日期格式System.out.println(------------------Server-------------------);ServerSocketserver=null;try{server=newServerSocket(80);//创建一个ServerSocket在端口4700监听客户请求}catch(Exceptione){System.out.println(cannotlistento:+e);//出错,打印出错信息}Socketsocket=null;try{socket=server.accept();//使用accept()阻塞等待客户请求,有客户//请求到来则产生一个Socket对象,并继续执行}catch(Exceptione){System.out.println(Error.+e);//出错,打印出错信息}Stringline;BufferedReaderis=newBufferedReader(newInputStreamReader(socket.getInputStream()));《计算机网络》实验报告-2-//由Socket对象得到输入流,并构造相应的BufferedReader对象PrintWriteros=newPrintWriter(socket.getOutputStream());//由Socket对象得到输出流,并构造PrintWriter对象BufferedReadersin=newBufferedReader(newInputStreamReader(System.in));//由系统标准输入设备构造BufferedReader对象Stringret=;Stringnum[]=is.readLine().split(,);System.out.println(df.format(newDate())+接收到客户端发送的:+num[0]+和+num[1]);ret+=Double.valueOf(num[0])+++Double.valueOf(num[1])+=+(Double.valueOf(num[0])+Double.valueOf(num[1]))+\n;ret+=Double.valueOf(num[0])+-+Double.valueOf(num[1])+=+(Double.valueOf(num[0])-Double.valueOf(num[1]))+\n;ret+=Double.valueOf(num[0])+*+Double.valueOf(num[1])+=+(Double.valueOf(num[0])*Double.valueOf(num[1]))+\n;ret+=Double.valueOf(num[0])+/+Double.valueOf(num[1])+=+(Double.valueOf(num[0])/Double.valueOf(num[1]))+\n;//在标准输出上打印从客户端读入的字符串System.out.println(df.format(newDate())+向客户端发送:);System.out.println(ret);os.println(ret);//向客户端输出该字符串os.flush();os.close();//关闭Socket输出流is.close();//关闭Socket输入流socket.close();//关闭Socketserver.close();//关闭ServerSocket}catch(Exceptione){System.out.println(Error:+e);//出错,打印出错信息}}}2.客户端代码如下所示。importjava.io.*;importjava.net.*;importjava.util.Date;importjava.text.SimpleDateFormat;publicclassClient{《计算机网络》实验报告-3-publicstaticvoidmain(Stringargs[]){try{SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);//设置日期格式Socketsocket=newSocket(127.0.0.1,80);BufferedReadersin=newBufferedReader(newInputStreamReader(System.in));//由系统标准输入设备构造BufferedReader对象PrintWriteros=newPrintWriter(socket.getOutputStream());//由Socket对象得到输出流,并构造PrintWriter对象BufferedReaderis=newBufferedReader(newInputStreamReader(socket.getInputStream()));//由Socket对象得到输入流,并构造相应的BufferedReader对象System.out.println(------------------Client-------------------);System.out.print(请输入两个数字:);Stringreadline;readline=sin.readLine();//从系统标准输入读入一字符串System.out.println(df.format(newDate())+向服务器发送:+readline);os.println(readline);//向服务器发送os.flush();System.out.println(df.format(newDate())+接收到服务器发送的:);while(true){Stringl=is.readLine();if(!l.equals()){System.out.println(l);while(!l.equals()){System.out.println(l);l=is.readLine();}break;}}//继续循环os.close();//关闭Socket输出流is.close();//关闭Socket输入流socket.close();//关闭Socket}catch(Exceptione){System.out.println(出现错误:+e);}}}四、测试数据与实验结果1.服务器端:《计算机网络》实验报告-4-2.客户端五、结果分析与实验体会本次实验过程中出现了java.net.ConnectException:Connectionrefused:connect问题,通过查阅资料发现出现原因可能是:1)端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭Tomcat服务器,或者重新启动项目。2)使用以下命令检查服务器中允许的最大进程数:ulimit-u。如果将此值设置为较低值,例如1024,则使用以下值将其增加到131072或无限制:ulimit-u131072或者ulimit-u无限制。3)客户端和服务器,它们中的任何一个或两个都不在网络中。发现这些原因都可以导致出现连接被拒绝的情况。而我的是服务器没开,导致客户端找不到服务器。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功