java聊天室客户端代码 java聊天室客户端代码大全( 四 )


// TODO Auto-generated catch block
e.printStackTrace();
return;
}
}
}
public void send() { //发送消息
String text = this.jtf.getText(); //得到你输入的消息
this.jtf.setText(""); //在文本域中显示你输入的消息 。
out.println(text); //打印出 。
out.flush(); //清空
}
}
Server端
import java.net.*;
import java.io.*;
import java.util.*;//引入包
public class ChatServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(9000); //建立服务端,端口号为9000
List list = new ArrayList(); //创建个List集合 。
while (true) {
Socket s = ss.accept(); //等待客户端的请求 。
list.add(s); //把每一个client都add到集合中去 。
Thread t = new ServerThread(s, list); //线程 。
t.start(); //启动 。
}
}
}
class ServerThread extends Thread {
Socket s;
List list;
BufferedReader in;
PrintWriter out;
public ServerThread(Socket s, List list) { //构造 。传入socket和list 。
this.s = s;
this.list = list;
try {
in = new BufferedReader(new InputStreamReader(s.getInputStream())); //输入流
out = new PrintWriter(s.getOutputStream()); //输出流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run() { //必须实现其run()方法 。
while (true) {
try {
String str = in.readLine(); //得到client端的message 。
if (str == null) //如果没有消息就返回 。
return;
Iterator it = list.iterator(); //遍历list 。
while (it.hasNext()) { //如果list有下一个
Socket socket = (Socket) (it.next()); //因为list中都是存的socket
PrintWriter o = new PrintWriter(socket.getOutputStream()); //输出流
o.println(str); //输出
o.flush(); //清空
}
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
return;
}
}
}
}
java实现聊天室是怎么做到的?Java 实现聊天室可以分为以下几个步骤:
建立服务器端
首先需要建立一个服务器端,负责接收客户端的连接请求并处理客户端发送过来的消息 。
建立客户端
然后需要建立客户端,客户端通过网络连接到服务器端,并向服务器端发送消息 。
实现通信协议
为了实现聊天室功能,需要定义一个通信协议,规定客户端和服务器端之间的通信格式,例如消息的头部和内容等 。
实现多线程处理
聊天室通常会有多个用户同时在线,因此需要使用多线程来处理多个客户端的连接请求和消息传递 。
实现GUI界面(可?。?
为了方便用户使用,可以实现一个GUI界面,让用户可以方便地发送和接收消息 。
以下是一个简单的 Java 聊天室的代码示例:
java
Copy code
// 服务器端代码
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
new Thread(new ServerThread(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ServerThread implements Runnable {
private Socket socket;
private BufferedReader reader;
private PrintWriter writer;
public ServerThread(Socket socket) {
this.socket = socket;
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();

推荐阅读