项目说明:
本项目由三个.java文件(Client.java、Server.java、UI.java)和一个.jpg图片文件组成UI.java是负责界面的构成文件。本聊天室的界面极其简单。主要分为两个界面:第一个是启动时需要登陆的界面如下:
输入名字进去以后就可以直接聊天
这个聊天室相当于群聊,每一个登陆进去的人发的信息,其他人都会收到。
使用指南:1.运行Server.java文件,保证服务端的开启
2.运行UI.java文件,界面登陆。每运行一个UI文件并登陆进去,就代表一个客户进了群聊中,可进行对话。
程序简单易懂,非常适合初学者练习网络编程的知识。
Client.java
import java.net.*;
import java.io.*;
import java.util.*;
public class Client{
String name;
Socket s;
UI ui;
//构造方法 ,把UI对象传过来
public Client(UI ui){
this.ui = ui;
}
//从登陆界面获得名字并传去服务端
public void getName(String name){
try{
s = new Socket("127.0.0.1",3000);
Cli1 d = new Cli1(s,ui);
d.start();
this.name = name;
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(name);
}catch(Exception e){
e.printStackTrace();
}
}
//从聊天界面获得要发送的内容并经服务器转发给各个客户端
public void say(String content){
try{
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(content);
}catch(Exception e){
e.printStackTrace();
}
}
}
//输入和输出
class Cli1 extends Thread {
UI ui;
Socket s ;
public Cli1(Socket s,UI ui){
this.s = s;
this.ui=ui;
}
public void run(){
try{
while(true){
DataInputStream dis = new DataInputStream(s.getInputStream());
String content = dis.readUTF();
if(!content.equals("")&&content!=null){
System.out.println(content);
ui.say(content);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Server.java
import java.net.*;
import java.io.*;
import java.util.*;
public class Server{
static Socket s;
static Socket[] soc;
static String[] name;
static int k = 5,i =0,j;
public static void main(String[] args)