2022年广工java作业.pdf

上传人:C****o 文档编号:14832723 上传时间:2022-05-08 格式:PDF 页数:7 大小:197.70KB
返回 下载 相关 举报
2022年广工java作业.pdf_第1页
第1页 / 共7页
2022年广工java作业.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年广工java作业.pdf》由会员分享,可在线阅读,更多相关《2022年广工java作业.pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、广工 java 作业Java语言课程作业(第二次 ) 题目第 15 题学院计算机学院专业网络工程班别学号姓名2015年 5 月 16 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 7 页 - - - - - - - - - - 广工 java 作业一、课程题目15、 利用 Socket类与 ServerSocket类编写一个 C/S 程序,实现 C/S通信。客户端向服务器端发送“ Time”命令 ,服务器端接受到该字符串后将服务器端当前时间返回给客户端 ;客户端向服务器端发送 “Exit”

2、 命令,服务器端向客户端返回 “Bye”后退出。客户端服务器端二、 题目分析与设计1、 本题目要求创建一个客户端与服务器,两者能进行通信连接 ,客户端能从服务器获取服务器当前时间,能向服务器申请关闭连接。本题目主要用到Date类、SimplDateFormat类、socket类、SocketServer类、还有线程类等。2、本题目没有界面 ,没有用到界面组件。3、 服务器端主程序监听某一个端口,客户端发起连接请求 ,服务器端主程序接收请求 ,同时构造一个线程类 ,用于接管会话。当一个 Socket会话产生后 ,这个会话就会交给线程进行处理 ,主程序继续进行监听。实现程序流程就是:客户端与服务器

3、建立连接 ,客户端发送消息 ,服务端根据消息进行处理并返回相关消息,若客户端申请关闭 ,则服务器关闭此连接 ,双方通讯结束。4、使用的开发环境就是Eclipse。关键代码主要就是I/O 输出输入流 ,还有线程、套接字的连接。三、测试分析预测结果 :当客户端输入Time 时,服务器输出字符Time 到屏幕返回服务器当前时间到客户端 ,客户端接收从服务器发来的时间并且输出到屏幕。当客户端向服务器发送字符Exit 时,服务器向客户端发送字符Bye 然后客户端输出字符精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第

4、 2 页,共 7 页 - - - - - - - - - - 广工 java 作业Bye 到屏幕。下面图 1 就是服务器的结果 ,图 2 就是客户端的结果 ,与预测结果一样。图 1 图 2 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 7 页 - - - - - - - - - - 广工 java 作业附录 :源代码客户端代码 : import java、net、 *; import java、io、*; public class Client public static void main

5、(String args) throws IOException / TODO Auto-generated method stub try Socket socket = new Socket(127 、0、0、1,9); / 创建一个流套接字并将其连接到指定IP 地址的指定端口号BufferedReader buf = new BufferedReader(new InputStreamReader(System、 in);/创建 BufferedReader 对象读取从键盘输入的字符/由 Socket 对象得到输出流,并构造相应的BufferedWriter 对象 ,设置输入字符格式为

6、UTF-8 类型BufferedWriter bufOut = new BufferedWriter( new OutputStreamWriter(socket 、getOutputStream(),UTF-8); / 由 Socket 对象得到输入流,并构造相应的BufferedReader 对象 ,设置输入字符格式为 UTF-8 类型BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket、getInputStream(),UTF-8); String line = null ; while (line

7、=buf 、readLine() != null )/读入一行字符串 bufOut、write(line);/ 输出读入的字符到服务器bufOut、newLine();/ 输出读入的一行字符到服务器后换行bufOut、flush();/ 刷新输出流 ,使服务器马上收到该字符String str = bufIn 、readLine();/ 读入从服务器得到的字符if (!(Bye 、equals(str)/如果从服务器读入的字符不就是Bye System、out、print(str);/ 输出从服务器中读入的字符System、out、println(); else System、out、 pri

8、ntln(Bye!);/如果从服务器读入的字符就是Bye 则输出 Bye! 到客户端屏幕break ;/跳出循环 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 7 页 - - - - - - - - - - 广工 java 作业/关闭流socket、close(); buf、close(); bufOut、 close(); bufIn 、close(); catch (Exception e)/ 抛出异常 e、printStackTrace(); 服务器端代码 : import java、

9、io、*; import java、net、 *; import java、text、SimpleDateFormat; import java、util 、*; public class Server public static void main(String args) throws Exception / TODO Auto-generated method stub try SuppressWarnings(resource) ServerSocket server = new ServerSocket(9); / 创建一个ServerSocket 在端口 9监听客户请求for (;

10、) try Socket socket = server、accept();/ 侦听并接受到此Socket 的连接 ,请求到来则产生一个Socket 对象 ,并继续执行System、out、println( 服务器已经启动!); new Thread(new PaintThread(socket)、 start();/当有请求时 ,启一个线程处理 catch(Exception e)/ 抛出异常 e、printStackTrace(); catch (IOException e) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - -

11、 - - - - -第 5 页,共 7 页 - - - - - - - - - - 广工 java 作业 e、printStackTrace(); class PaintThread implements Runnable/新建一个线程类并继承Runnable 接口 private Socket socket; /创建 SimpleDataFormat 类对象设置时间格式SimpleDateFormat dateFormat = new SimpleDateFormat(HH:mm:ss,Locale 、ENGLISH ); public PaintThread(Socket socket)

12、this、socket = socket; public void run() try / 由 Socket 对象得到输入流,并构造相应的BufferedReader 对象 ,设置输入字符格式为 UTF-8 类型BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket、getInputStream(),UTF-8); /由 Socket 对象得到输出流,并构造相应的BufferedWriter 对象 ,设置输入字符格式为 UTF-8 类型BufferedWriter bufOut = new BufferedW

13、riter( new OutputStreamWriter(socket 、getOutputStream(),UTF-8); String line = null ; while (line = bufIn 、readLine() != null )/读入一行从客户端发过来的字符 if(Time 、equals(line)|time 、equals(line)/ 当客户端输入Time 时服务器返回当前时间给客户端 String data = dateFormat、format(new Date(); bufOut、 write( 现在的时间就是: + data); bufOut、 newLi

14、ne(); bufOut、 flush(); System、out、println(line); if(Exit 、 equals(line)|exit 、equals(line)/ 客户端申请退出,服务端返回确认退出 bufOut、write(Bye); bufOut、newLine(); bufOut、flush(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 7 页 - - - - - - - - - - 广工 java 作业break ; System、out、println( 连接已经断开!); bufIn 、close();/关闭流bufOut、 close(); socket、close(); catch (IOException e) e、printStackTrace(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 7 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com