网站在百度的图标显示不正常显示wordpress装饰模板排名
web/
2025/10/6 12:29:49/
文章来源:
网站在百度的图标显示不正常显示,wordpress装饰模板排名,又拍云存储WordPress,做设计灵感的网站这边我会简单介绍一下聊天室的组成部分,和思路的引导
涉及知识点 java 中异常处理机制 和 io流和网络编程socket
简单回顾异常机制 Java中的异常机制是一种用于处理程序运行期间出现的错误或异常情况的机制。这种机制允许程序员定义在特定情况下可能发生的错误#xff0c;并…这边我会简单介绍一下聊天室的组成部分,和思路的引导
涉及知识点 java 中异常处理机制 和 io流和网络编程socket
简单回顾异常机制 Java中的异常机制是一种用于处理程序运行期间出现的错误或异常情况的机制。这种机制允许程序员定义在特定情况下可能发生的错误并提供了一种方式来处理这些错误从而防止程序崩溃。 简单回顾IO流 IO流全称Input/Output Stream代表数据的无结构化传递。在程序中按照流的方式进行输入输出数据被当成无结构的字节序或字符序列来处理。流是一种抽象概念用于描述数据在设备间的传输过程。IO流的主要作用是处理设备间的数据传输问题常见的应用包括文件上传、下载、复制等。 简单回顾socket Socket是用于网络通信的一个关键类。它提供了一种方式来创建网络连接使得两台或多台计算机之间可以进行数据交换。通过Socket我们可以建立客户端和服务器之间的连接发送和接收数据。 这边是其知识点详细介绍
异常 异常的基本概念 异常类Java中定义了许多异常类如IOException、NullPointerException等它们都继承自Throwable类。Throwable类又分为Error和Exception两个主要分支。Error通常表示严重的系统级错误如JVM错误而Exception则用于表示程序运行过程中可能出现的问题。抛出异常当程序遇到无法处理的错误情况时它会抛出一个异常。这可以通过使用throw关键字和异常对象来实现。捕获异常程序可以使用try-catch语句块来捕获和处理异常。当try块中的代码抛出异常时控制流会立即转移到相应的catch块在那里可以处理异常。 异常处理流程 try块包含可能抛出异常的代码。catch块用于捕获并处理特定类型的异常。可以有多个catch块来处理不同类型的异常。finally块可选无论是否发生异常finally块中的代码都会被执行。这通常用于释放资源或执行清理操作。throw关键字用于显式地抛出一个异常。throws关键字在方法签名中使用用于声明该方法可能抛出的异常。这样调用该方法的代码就需要处理这些异常。 异常类型 检查型异常Checked Exceptions这些异常在编译时被检查。如果方法可能抛出检查型异常那么该方法必须使用throws关键字声明这些异常或者使用try-catch块来处理它们。常见的检查型异常有IOException、SQLException等。非检查型异常Unchecked Exceptions这些异常是运行时异常继承自RuntimeException。它们通常表示编程错误如NullPointerException、ArrayIndexOutOfBoundsException等。非检查型异常不需要在方法签名中声明。 异常链 Java还支持异常链允许一个异常在抛出时携带另一个异常的信息。这通常用于包装底层异常以便在更高级别的代码中提供更详细的错误信息。 自定义异常 除了Java内置的异常类外程序员还可以定义自己的异常类。这通常用于表示特定于应用程序的错误情况。自定义异常类应该继承自Exception或其子类。 总结 Java的异常机制提供了一种结构化的方式来处理程序中可能出现的错误情况。通过合理地使用异常处理机制可以提高程序的健壮性和可维护性。 主要记住 异常是分两种
非检查异常(逻辑错误导致的异常通过运行判断) 可以不用写try-catch,通常根据业务自定义异常
检查异常 (人为不可控的异常在编译期被检查) 必须抛出异常,根据异常处理机制处理异常,这个用java自带异常足够了
IO流 根据不同的分类标准IO流可以分为多种类型 按照流的流向IO流可以分为输入流和输出流。输入流只能从中读取数据而不能向其写入数据由InputStream和Reader作为基类输出流只能向其写入数据而不能从中读取数据由OutputStream和Writer作为基类。按照流所操作的数据单元IO流可以分为字节流和字符流。字节流操作的数据单元是8位字节由InputStream和OutputStream作为基类字符流操作的数据单元是16位的字符由Reader和Writer作为基类。按照流的角色IO流可以分为节点流和处理流。节点流可以从向一个特定的IO设备如磁盘、网络读/写数据的流也被称为低级流处理流则是对一个已存在的流的连接和封装通过所封装的流的功能调用实现数据读写也被称为高级流。 这边聊天室用的是字符流高级处理流,
字符读取流 BufferedReader 字符缓冲输入流
字符输出流 PrintWriter 字符缓冲打印输出流,其根据 换行符判断
Socket 基本概念 客户端Socket通常由想要连接服务器的应用程序创建。客户端Socket会指定要连接的服务器地址和端口然后发送连接请求。一旦连接建立客户端就可以通过Socket发送和接收数据。服务器Socket由服务器应用程序创建用于监听来自客户端的连接请求。服务器Socket绑定到一个特定的端口上等待客户端的连接。一旦有客户端连接服务器就可以接受这个连接并与客户端进行通信。 主要方法 ServerSocket(int port)创建一个服务器Socket并绑定到指定的端口。Socket(String host, int port)创建一个客户端Socket并连接到指定的主机和端口。getInputStream() 和 getOutputStream()分别用于获取Socket的输入流和输出流用于读取和写入数据。close()关闭Socket连接。 使用场景 Socket在Java中通常用于实现基于TCP/IP协议的网络通信。例如你可以使用Socket来创建一个简单的聊天程序其中一个程序作为服务器监听客户端的连接请求另一个或多个程序作为客户端连接到服务器并发送消息。 聊天室的思路
客户端
Socket 连接服务器的ip地址和端口 根据Scanner扫描用户输出的值, 根据socket接受其输出流 根据PrintWriter输出,
为了服务端判断其用户名,这边将第一次输出的值作为昵称,然后我们想要中断输出 使用 exit字符串作为判断条件,其次为了保证消息可靠传输 会关闭插口,为了每个客户端能接受服务端输给客户端的消息,这边封装一个类专门处理的服务端发过来的数据,在将其处理成守护线程,这个保证客户端不用处理服务端的输入流,同时保证一旦线程结束服务端不会在发送给客户端数据.
思路mind图
客户端您也想制作这样的电子书?快上云展网!网址:yunzhan365.comhttps://book.yunzhan365.com/bfctn/rxcn/mobile/index.html服务端
ServerScoket 是服务端插口 需要确保端口不被占用 ,用 ServerSocket 接受用户端的插口,因为服务端常用与一对多需要重复接受用户端的插口,封装一个处理客户端输出的线程类,避免一个接受用户的插口和接受用户输入的数据冲突,将用户第一次输入的数据作为昵称封装私有属性,其次封装从插口中获取的客户端的ip地址,读取用户的数据 ,根据读取的字符同null比较,来处理用户端输入的所有数据 , 将服务端的数据反馈给客户端,处理多个客户端数据实现群聊,创建一个集合,存储用户输入的数据,这边需要将用户输入的数据传递给集合在遍历集合输出给用户,为了方便定义了一个专门遍历集合的方法,我们统计了上线人数,以便后来我们考虑了线程并发问题,将添删集合元素上了一把同步锁,让后我们想要删除集合元素和增加集合元素独立不影响,我们把遍历集合上了一把互斥锁,最后我们实现了私聊的功能,封装了一个处理私聊的方法,根据正则表达式判断输入数据符合私聊的规则,根据在线中昵称判断用户是否存在
思路mind图
服务端您也想制作这样的电子书?快上云展网!网址:yunzhan365.comhttps://book.yunzhan365.com/bfctn/yfyp/mobile/index.html
这边暂时总结到这里, 这边我先上传一下代码和思维导图,有兴趣的朋友可以一起探讨,我这边也在学习java,我可以问一下我们的培训老师的哈
完整版代码
java -聊天室的代码: 用于存放聊天室的项目的代码和思路导图https://gitee.com/to-uphold-justice-for-others/java---code-for-chat-rooms.git
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87910.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!