编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)
查看本章节
查看作业目录
需求说明:
实现思路:
- 创建 QQ 小冰类 AiRobot服务端类和用户类 User,在服务端类main方法中使用ServerSocket(8888)创建服务端套接字,同时调用accept方法等待和得到客户端Socket
- 从Socket中获取和客户端通信的输出流,并且使用PrintWriter包装,调用println方法发送信息给客户端,注意异常处理和关闭socket
- 在客户端User类的main方法中,使用new Socket(“127.0.0.1”8888)建立和服务端的连接,调用socket对象的获取输入流方法,使用BufferedReader进行包装为字符流,方便读取数据
- 调用BufferedReader对象的readLine()方法读取服务端发送的数据,注意代码中的异常处理和最后关闭流和socket
- 分别运行服务端的main和客户端的main进行测试,切换观察控制台输出
实现代码:
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();}}}
}
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 小冰充当服务端)相关推荐
- 编写Java程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程序。
编写Java程序,在屏幕上显示带标题的窗口,并添加一个按钮.当用户单击按钮时,结束程序. package p3;import java.awt.event.ActionEvent; import ja ...
- 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。
查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...
- 【练习题】构造方法 编写Java程序,模拟简单的计算器。
package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...
- 编写java程序模拟简单的计算器
/*** 编写java程序模拟简单的计算器* 定义名为Number的类其中有两个整型数据成员变量n1和n2应该声明为私有* 编写构造方法赋予n1和n2初始值* 再为该类定义加addition().减s ...
- java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...
问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...
- Java初学者作业——编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额。
返回本章节 返回作业目录 需求说明: 编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额. 购买总金额达到或超过 1000元,按 8折优惠,送 200元的购物券: ...
- Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表
返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...
- 银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...
编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以"62" ...
- 编写运行最简单的java程序——使用记事本编写java程序
编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...
最新文章
- Linux用户配置密码,linux用户配置文件passwd和密码配置文件shadow,用户管理,组管理...
- 注意力机制YYDS,AI编辑人脸终于告别P一处而毁全图
- Java Review - 并发编程_ 回环屏障CyclicBarrier原理源码剖析
- TensorFlow tf.data 导入数据(tf.data官方教程) * * * * *
- spring boot基础配置
- java多线程优先级的方法_Java多线程以及线程优先级
- 支付系统整体设计:整体架构设计以及注意要点(三)
- SAP Spartacus ConsentTemplate 数据结构的暴露逻辑
- HDU1048 The Hardest Problem Ever
- java 时间日期视频_40-日期和时间-JAVA和C#语法比较 - 视频教程 - 北盟网校 - 专注原创教学第一站...
- 上周热点回顾(11.11-11.17)
- 应用安全 - Web安全 - 文件包含攻防
- CherryPy 入门
- 透過 OpenNI / NITE 分析人體骨架(下)
- 牛腩新闻发布系统——总结
- Windows Server 2012 R2 安装密钥
- linux删除登录密码,Linux重置登录密码
- 提醒后来人:钉钉里面的钉盘一定不要用,坑
- 运筹系列63:使用ALNS求解大规模TSP问题
- a-upload文件夹上传