文章插图
学习编程最重要的就是兴趣引导,所以在学习之前能够看到一个项目成型是非常有必要的 。
QQ微信作为大家经常使用的社交软件,一定特别贴切实际 。
今天就带大家去了解一下,一个简单的QQ聊天工具其实并不复杂 。
首先把这个聊天的项目简单的分为四步,也就是整体的框架(目录) 。
Java项目——简单的QQ聊天工具(目录)一、聊天演示二、服务器端三、客户端四、Util工具类聊天演示这个是我自己模拟的截图,由于只有一台电脑,所以只能运行多个窗口进行演示(你也可以多台电脑演示) 。
演示截图
这里的服务器端是Server,客户端有三个分别是111、222和333,当我们正常聊天时是群聊状态,想要进行私聊可以进行@XXX:即可,该系统可以完成多台电脑的联机 。
服务器端下面给大家详细的讲解一下关于QQ群聊和私聊的具体思想:
首先这个程序用了TCP协议,也叫做三次握手协议 。为什么这样讲呢?
因为在这个TCP协议中分客户端和服务器端,客户端要想向服务器端发送消息,要先给服务器打个招呼,判断服务器是否能正常工作 。
如果可以,服务器会给一个回复,当客户端接到这个肯定的回复后才能向服务器发送消息,所以需要先启动服务器端,其中,服务器端和客户端之间的信息传输都是以流的方式进行的,如何启动服务器端呢?
这个是我写的代码,里面都有注释:由于从JDK中复制过来的代码格式会被平台调整,所以这里照齐上可能不太好看 。
package com.TCP;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
/**
* 该类实现的是服务器端,也只有启动了服务器,客户端才能进行信息的交流
* @author 11852
*
*/
public class Server {
//这个list集合是用来存储各个客户端的,每当有一个客户端建立了连接,这里就会存储起来
private static List<Channel> list = new ArrayList<Channel>();
public static void main(String[] args) throws IOException {
System.out.println(“—Server—“);
// 指定端口,使用ServerSocket创建服务器,此时创建了一个名字为server端口号为12345
的服务器
ServerSocket server = new ServerSocket(12345);
boolean flag = true;
while (flag) {
// 阻塞式等待连接accept,服务器调用accept方法,即是获得一个客户端的连接
//如果没有客户端连接,则该程序处于堵塞状态
Socket client = server.accept();
System.out.println(“一个客户端建立了连接”);
//客户端与服务器建立了连接之后,获取该客户端的输入流和输出流对象
Channel channel = new Channel(client);
list.add(channel);// 用list容器管理所有的人员
//这里是实现多线程,即每个客户端都可以进行与服务器端的交流
new Thread(channel).start();
}
server.close();
}
// 一个客户端代表一个Channel
static class Channel implements Runnable {
private DataInputStream dis;
private DataOutputStream dos;
private Socket client;
private boolean isRunning;
private String name;
//这是构造方法
public Channel(Socket client) {
this.client = client;
try {
dis = new DataInputStream(client.getInputStream());
isRunning = true;
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- cad动态块的创建完整步骤 cad动态块怎么做
- 怎么申请开通注册邮箱账号? 如何创建自己的电子邮件
- 字里行间,传递希望!暴雨后救命文档创建者是河南籍大学生 万古神帝飞天鱼
- 暴雨救命文档创建者是河南籍大学生 万古神帝飞天鱼
- 电脑怎么创建图片密码? 图片密码怎么设置
- linux创建用户命令代码讲解 linux创建用户命令代码
- 创建存储过程语法 创建存储过程的语句是什么
- 2021手机兼职项目 未成年手机兼职赚钱一单一结50元
- 2021手机兼职软件推荐 手机上做兼职赚零花钱做什么
- 手把手教你注册谷歌账号 安卓手机怎么创建谷歌账号