Day26--知識の概要

多人数チャットルームを達成するために1 TCP

1.1分析

客户端
	功能:
		1. 数据发送
		2. 数据接收
	技术:
		1. socket
		2. 输入流和输出流
		3. 多线程,客户端功能模块有两个线程
	聊天:
		1. 群聊
		2. 私聊
			私聊前缀 @服务器用户ID号:msg
	
服务器
	功能:
		1. 数据转发
		2. 用户注册
	技术:
		1. ServerSocket
		2. 每一个用户对应的Sokcet对象
		3. 多线程同时在线
		4. HashMap<Integer, 用户>
	数据转发:
		私聊前缀判断
		群聊所有人发送

1.2クライアントの実装

数据发送:
	使用输出流发送数据给服务器
	遵从Runnable接口
数据接收:
	使用输入流从服务器端接收数据
	遵从Runnable接口

客户端主方法:
	用户名提交
	数据发送
	数据接收
		多线程启动

1.3リソースのクローズ問題

代码中操作了大量的输入流和输出流,这里都需要进行关闭操作。
	DataInputStream, DataOutputStream, BufferedReader, Socket
	
以上这些资源都是Closeable接口的实现类,都有对应的Close方法
封装一个工具类:
	提供一个closeAll方法,参数为符合Closeable接口的实现类对象。
	这里可以考虑可变长参数
		Closeable... closeable
	
	可变长参数在方法中使用的过程里面是对应一个数组,这里完成可以使用增强for来使用

工具类名:
	CloseUtil
		public static void closeAll(Closeable... closeable)

1.4機能拡張

1. 用户退出
	用户输入指定字段之后可以退出
	客户端Socket服务
	服务端Socket服务
	涉及资源关闭,线程关闭

2. 用户异常退出
	在运行过程中发现问题,需要及时处理,关闭对应的资源,终止对应的线程

3. 服务器保存所有的聊天记录

2. JSON

2.1 JSONフォーマットの概要

JSON
	JavaScript
	JavaScript Object Notation
	(JavaScript Object Notation,JavaScript对象表示法,读作/ˈdʒeɪsən/)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯

2.2データフォーマット

2.2.1 JSONオブジェクト
特征:
	1. 数据形式键值对形式
		"键":值
	2. 数据支持 字符串,数字,true false
	3. {} 大括号以内的数据
オブジェクトの2.2.2 JSON配列
特征:
	1. 数据使用[]包含
	2. 在[]都是JSON格式对象
	3. 每一个对象之间使用逗号隔开,同时最后一个元素不需要逗号

2.3解析JSON形式のツール

常用的工具:
	Gson,fastjson, Jackson
	以上都是第三方工具,需要导入对应的jar包按使用
	XML导包
2.3.1 FastJsonコンテンツ
JSON核心类
	JSON核心类提供解析和转化方法,用于解析JSON数据格式,同时用于转换类对象到JSON格式,该类对象需要符合JavaBean规范
	--| JSONArray
		存在按照键值对方式解析获取数据,同时存在一定的List方法
	--| JSONObject
		获取对应的类对象,指定键值对对应数据的方法
公開された16元の記事 ウォン称賛34 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_41424681/article/details/104758691