这篇文章主要为大家详细介绍了Java实现单线程聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Java实现单线程聊天室的具体代码,供大家参考,具体内容如下
一. Socket API简介
1. Socket编程
Java.net.Socket类代表一个套接字,并且为服务器程序提供了一种来监听客户端并与他们建立连接的一种机制.
套接字使用TCP提供了两台计算机之间的通信机制,客户端创建一个套接字并尝试连接服务器的套接字,当连接建立时,服务器就会创建一个Socket对象,客户端和服务器就可以通过Socket对象的写入和读取来进行通信,这就是聊天室的原理.
两台计算机使用套接字建立TCP连接时会出现以下步骤:
- 服务端实例化一个ServerSocket对象,表示通过服务器上的端口通信
- 服务端调用ServerSocket的accept()方法,该方法将一直等待,直到客户端连接上服务器上给定的端口
- 服务端正在等待时,一个客户端实例化一个Socket对象,指定服务器名称和端口号来请求连接
- Socket类的构造函数试图将客户端连接到指定的服务器和端口号上,如果通信被建立,则在客户端创建一个Socket对象能够与服务端进行通信
- 在服务端,accept()方法返回服务器上一个新的socket引用,该socket连接到客户端的socket
TCP是一个双向通信协议,连接建立后,通过使用I/O流进行通信,每一个socket都有一个输出流和输入流,客户端的输出流连接到服务端的输入流,服务端的输出流连接到客户端的输入流.
二. 实现单线程模式的聊天室
首先我们来理清整个编程的思路:
socket编程
1.创建项目:
1.1 服务器模块ServerSocket
1.2 客户端模块Socket
2. 服务器端
2.1 创建serverScoket,绑定端口
2.2 接收客户端连接,Socket
2.3 通过Socket连接,发送和接收数据
2.4 关闭ServerSocket/Socket
3. 客户端
3.1 创建Socket,指定服务器的地址和端口号
3.2 通过Socket发送和接收数据
3.3 关闭Socket
1. 服务端
2. 客户端
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。