查看本章节

查看作业目录


需求说明:

小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱。现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)

实现思路:

  1. 创建 QQ 小冰类 AiRobot服务端类和用户类 User,在服务端类main方法中使用ServerSocket(8888)创建服务端套接字,同时调用accept方法等待和得到客户端Socket
  2. Socket中获取和客户端通信的输出流,并且使用PrintWriter包装,调用println方法发送信息给客户端,注意异常处理和关闭socket
  3. 在客户端User类的main方法中,使用new Socket(“127.0.0.1”8888)建立和服务端的连接,调用socket对象的获取输入流方法,使用BufferedReader进行包装为字符流,方便读取数据
  4. 调用BufferedReader对象的readLine()方法读取服务端发送的数据,注意代码中的异常处理和最后关闭流和socket
  5. 分别运行服务端的main和客户端的main进行测试,切换观察控制台输出

实现代码:

QQ小冰类(AiRobot)

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class AiRoot {public static void main(String[] args) {ServerSocket server = null;PrintWriter writer = null; try {server = new ServerSocket(9999);Socket socket = server.accept();OutputStream os = socket.getOutputStream();writer = new PrintWriter(os);writer.println("欢迎新成员<张三加入,让大家认识一下吧!>");System.out.println(writer);} catch (IOException e) {e.printStackTrace();}finally {try {if (writer != null) {writer.close();server.close();}} catch (IOException e) {e.printStackTrace();}}}
}

用户类(User)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;public class User {public static void main(String[] args) {Socket client = null;BufferedReader br = null;try {client = new Socket("127.0.0.1",9999);InputStream is = client.getInputStream();InputStreamReader reader = new InputStreamReader(is);br = new BufferedReader(reader);String content = br.readLine();System.out.println("QQ小冰说:"+content);} catch (IOException e) {e.printStackTrace();}finally {try {if (br != null) {br.close();client.close();}} catch (IOException e) {e.printStackTrace();}}}
}

编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)相关推荐

  1. 编写Java程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程序。

    编写Java程序,在屏幕上显示带标题的窗口,并添加一个按钮.当用户单击按钮时,结束程序. package p3;import java.awt.event.ActionEvent; import ja ...

  2. 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。

    查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...

  3. 【练习题】构造方法 编写Java程序,模拟简单的计算器。

    package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...

  4. 编写java程序模拟简单的计算器

    /*** 编写java程序模拟简单的计算器* 定义名为Number的类其中有两个整型数据成员变量n1和n2应该声明为私有* 编写构造方法赋予n1和n2初始值* 再为该类定义加addition().减s ...

  5. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...

    问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...

  6. Java初学者作业——编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额。

    返回本章节 返回作业目录 需求说明: 编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额. 购买总金额达到或超过 1000元,按 8折优惠,送 200元的购物券: ...

  7. Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...

  8. 银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...

    编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以"62" ...

  9. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

最新文章

  1. Linux用户配置密码,linux用户配置文件passwd和密码配置文件shadow,用户管理,组管理...
  2. 注意力机制YYDS,AI编辑人脸终于告别P一处而毁全图
  3. Java Review - 并发编程_ 回环屏障CyclicBarrier原理源码剖析
  4. TensorFlow tf.data 导入数据(tf.data官方教程) * * * * *
  5. spring boot基础配置
  6. java多线程优先级的方法_Java多线程以及线程优先级
  7. 支付系统整体设计:整体架构设计以及注意要点(三)
  8. SAP Spartacus ConsentTemplate 数据结构的暴露逻辑
  9. HDU1048 The Hardest Problem Ever
  10. java 时间日期视频_40-日期和时间-JAVA和C#语法比较 - 视频教程 - 北盟网校 - 专注原创教学第一站...
  11. 上周热点回顾(11.11-11.17)
  12. 应用安全 - Web安全 - 文件包含攻防
  13. CherryPy 入门
  14. 透過 OpenNI / NITE 分析人體骨架(下)
  15. 牛腩新闻发布系统——总结
  16. Windows Server 2012 R2 安装密钥
  17. linux删除登录密码,Linux重置登录密码
  18. 提醒后来人:钉钉里面的钉盘一定不要用,坑
  19. 运筹系列63:使用ALNS求解大规模TSP问题
  20. a-upload文件夹上传

热门文章

  1. 22款奔驰C260升级ACC自适应巡航,高速省心不少
  2. Win10 LTSC2021输入法失效解决办法
  3. 拥抱POL正当时,这里有四个故事五个理由
  4. 微软Win10这些黑科技小功能你都用过吗
  5. 不愧java_JAVA高手请进
  6. 大数据学习入门规划?和学习路线
  7. python狗狗年龄换算程序_狗狗年龄VS人类年龄(换算/对照表)
  8. android 行车记录仪分析,基于Android的智能行车记录仪的设计与实现.doc
  9. 一图看清公募基金十年持仓行业变迁
  10. 和菜头翻译 如何不靠运气致富