ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:88.68KB ,
资源ID:28422834      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28422834.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(广工java作业教学内容.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广工java作业教学内容.docx

1、广工java作业教学内容广工java作业Java语言课程作业(第二次)题 目 第15题 学 院 计算机学院 专 业 网络工程 班 别 学 号 姓 名 2015年5月16日一、课程题目 15. 利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。客户端向服务器端发送“Time”命令,服务器端接受到该字符串后将服务器端当前时间返回给客户端;客户端向服务器端发送“Exit”命令,服务器端向客户端返回“Bye”后退出。客户端 服务器端二、题目分析与设计 1.本题目要求创建一个客户端与服务器,两者能进行通信连接,客户端能从服务器获取服务器当前时间,能向服务器申请关闭连接。本

2、题目主要用到Date类、SimplDateFormat类、socket类、SocketServer类、还有线程类等。2.本题目没有界面,没有用到界面组件。3.服务器端主程序监听某一个端口,客户端发起连接请求,服务器端主程序接收请求,同时构造一个线程类,用于接管会话。当一个Socket会话产生后,这个会话就会交给线程进行处理,主程序继续进行监听。实现程序流程是:客户端和服务器建立连接,客户端发送消息,服务端根据消息进行处理并返回相关消息,若客户端申请关闭,则服务器关闭此连接,双方通讯结束。4.使用的开发环境是Eclipse。关键代码主要是I/O输出输入流,还有线程、套接字的连接。三、测试分析预测

3、结果:当客户端输入Time时,服务器输出字符Time到屏幕返回服务器当前时间到客户端,客户端接收从服务器发来的时间并且输出到屏幕。当客户端向服务器发送字符Exit时,服务器向客户端发送字符Bye然后客户端输出字符Bye到屏幕。下面图1是服务器的结果,图2是客户端的结果,与预测结果一样。 图1 图2 附录:源代码客户端代码:import .*;import java.io.*;public class Client public static void main(String args)throws IOException / TODO Auto-generated method stub tr

4、y Socket socket = new Socket(127.0.0.1,9); / 创建一个流套接字并将其连接到指定 IP地址的指定端口号 BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);/创建BufferedReader对象读取从键盘输入的字符 /由Socket对象得到输出流,并构造相应的BufferedWriter对象,设置输入字符格式为UTF-8类型 BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(so

5、cket.getOutputStream(),UTF-8); / 由Socket对象得到输入流,并构造相应的BufferedReader对象,设置输入字符格式为UTF-8类型 BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream(),UTF-8); String line = null; while(line =buf.readLine() != null)/读入一行字符串 bufOut.write(line);/输出读入的字符到服务器 bufOut.newLine();/输出

6、读入的一行字符到服务器后换行 bufOut.flush();/刷新输出流,使服务器马上收到该字符 String str = bufIn.readLine();/读入从服务器得到的字符 if(!(Bye.equals(str)/如果从服务器读入的字符不是Bye System.out.print(str);/输出从服务器中读入的字符 System.out.println(); else System.out.println(Bye!);/如果从服务器读入的字符是Bye则输出Bye!到客户端屏幕 break;/跳出循环 /关闭流 socket.close(); buf.close(); bufOut

7、.close(); bufIn.close(); catch(Exception e)/抛出异常 e.printStackTrace(); 服务器端代码:import java.io.*;import .*;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) Serv

8、erSocket server = new ServerSocket(9); / 创建一个ServerSocket在端口9监听客户请求 for(;) try Socket socket = server.accept();/ 侦听并接受到此Socket的连接,请求到来则产生一个Socket对象,并继续执行 System.out.println(服务器已经启动!); new Thread(new PaintThread(socket).start();/当有请求时,启一个线程处理 catch(Exception e)/抛出异常 e.printStackTrace(); catch(IOExcep

9、tion e) e.printStackTrace(); class PaintThread implements Runnable/新建一个线程类并继承Runnable接口 private Socket socket; /创建SimpleDataFormat类对象设置时间格式 SimpleDateFormat dateFormat = new SimpleDateFormat(HH:mm:ss,Locale.ENGLISH); public PaintThread(Socket socket) this.socket = socket; public void run() try / 由So

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

11、); 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.newLine(); bufOut.flush(); System.out.println(line); if(Exit.equals(line)|exit.equals(line)/客户端申请退出,服务端返回确认退出 bufOut.write(Bye); bufOut.newLine(); bufOut.flush(); break; System.out.println(连接已经断开!); bufIn.close();/关闭流 bufOut.close(); socket.close(); catch(IOException e) e.printStackTrace();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1