广工java作业_第1页
广工java作业_第2页
广工java作业_第3页
广工java作业_第4页
广工java作业_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java 语言 课程作业 第二次 题 目 第 15 题 学 院 计算机学院 专 业 网络工程 班 别 学 号 姓 名 2015 年 5 月 16 日 你的姓名 Java 语言 课程作业 第二次 2 一 课程题目 15 利用 Socket 类和 ServerSocket 类编写一个 C S 程序 实现 C S 通信 客户 端向服务器端发送 Time 命令 服务器端接受到该字符串后将服务器端当前 时间返回给客户端 客户端向服务器端发送 Exit 命令 服务器端向客户端 返回 Bye 后退出 客户端客户端 服务器端服务器端 二 二 题目分析与设计 1 本题目要求创建一个客户端与服务器 两者能进行通信连接 客户端能 从服务器获取服务器当前时间 能向服务器申请关闭连接 本题目主要用到 Date 类 SimplDateFormat 类 socket 类 SocketServer 类 还有线程类等 2 本题目没有界面 没有用到界面组件 3 服务器端主程序监听某一个端口 客户端发起连接请求 服务器端主程 序接收请求 同时构造一个线程类 用于接管会话 当一个 Socket 会话产生后 这个会话就会交给线程进行处理 主程序继续进行监听 实现程序流程是 客 户端和服务器建立连接 客户端发送消息 服务端根据消息进行处理并返回相 关消息 若客户端申请关闭 则服务器关闭此连接 双方通讯结束 4 使用的开发环境是 Eclipse 关键代码主要是 I O 输出输入流 还有线程 套接字的连接 三 测试分析 预测结果 当客户端输入 Time 时 服务器输出字符 Time 到屏幕返回服 务器当前时间到客户端 客户端接收从服务器发来的时间并且输出到屏幕 当 你的姓名 Java 语言 课程作业 第二次 3 客户端向服务器发送字符 Exit 时 服务器向客户端发送字符 Bye 然后客户端输 出字符 Bye 到屏幕 下面图 1 是服务器的结果 图 2 是客户端的结果 与预测结果一样 图 1 图 2 你的姓名 Java 语言 课程作业 第二次 4 附录 源代码 客户端代码 import import java io public class Client public static void main 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 对象 设置输入字 符格式为 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 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 println Bye 如果从服务器读入的字符是 Bye 则输出 Bye 到客户端屏幕 break 跳出循环 你的姓名 Java 语言 课程作业 第二次 5 关闭流 socket close buf close bufOut 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 ServerSocket server new ServerSocket 9 创建一个 ServerSocket 在端口 9 监听客户请求 for try Socket socket server accept 侦听并接受到此 Socket 的连接 请求 到来则产生一个 Socket 对象 并继续执行 System out println 服务器已经启动 new Thread new PaintThread socket start 当有请求时 启一个线 程处理 你的姓名 Java 语言 课程作业 第二次 6 catch Exception e 抛出异常 e printStackTrace catch IOException 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 由 Socket 对象得到输入流 并构造相应的 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 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 你的姓名 Java 语言 课程作业 第二次 7 bufOut flush System out println line if Exit equals line exit equals lin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论