java聊天程序Socket+Java聊天程序源代码
(一)功能描述
本聊天工具分为两个部分:服务端和客户端;使用时候要先启动运行服务端,然后再运行客户端,运行多次客户端就可以得到多个客户端同时在线了。本java聊天小工具使用了java的Socket通信机制、列表容器和多线程技术,可以实现多人在线聊天,模仿实现了大家非常熟悉的QQ群聊功能,客户端登陆时候向服务器注册了自己的IP地址、端口号码和用户名。服务端可以监控用户在线的情况人数、所有用户的聊天记录和看到用户所使用的昵称。每一个用户都可以看到其它用所发送的信息和用户的昵称。
(二)设计思路
(三)源代码:源代码的详细注释
(1)服务器端源代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Server extends JFrame{
boolean started = false;//用一个boolean变量值来判断连接服务器是否成功
ServerSocket ss = null;//定义一个服务器ServerSocket变量
List<Client> kehu=new ArrayList<Client>();//用一个链表来存放连接上服务器的客户端信息
Address adr = new Address();//实例化一个获取ip地址的对象addr
JLabel jj=new JLabel("当前在线人数");原文请找腾讯32-49114
JLabel jj1=new JLabel("在线人户情况");
JTextField t1=new JTextField("服务器的端口:8888");//发送消息输入框
JTextField tt=new JTextField("");//发送消息输入框
JTextField jb=new JTextField(20);//用来存放在线人数的文本框
static JTextArea t2=new JTextArea(18,48);//定义文本域t2
JTextArea t3=new JTextArea(5,16);//定义文本域t3,1947