Java Socket 聊天室是一种利用 Java Socket 编程实现的多人聊天系统。它可以实现多个客户端之间的实时通信,允许用户在线聊天、发送文件和图片等功能。
Java Socket 聊天室是一种利用 Java Socket 编程实现的多人聊天系统。它可以实现多个客户端之间的实时通信,允许用户在线聊天、发送文件和图片等功能。
是一段简单的 Java Socket 聊天室代码:
Server.java
import java.io.*;
import java.net.*;
import java.util.*;
public class Server {
// 定义保存所有Socket的ArrayList
public static ArrayList
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(30000);
while (true) {
// 此行代阻塞,将一直等待别人的连接
Socket socket = server.accept();
// 把客户端放入socketList中
socketList.add(socket);
// 每当客户端连接后启动一条ServerThread线程为该客户端服务
new Thread(new ServerThread(socket)).start();
}
}
}
ServerThread.java
import java.io.*;
import java.net.*;
import java.util.*;
public class ServerThread implements Runnable {
// 定义当前线程所处理的Socket
Socket s = null;
// 该线程所处理的Socket对应的输入流
BufferedReader br = null;
public ServerThread(Socket s) throws IOException {
this.s = s;
// 初始化该Socket对应的输入流
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
}
@Override
public void run() {
try {
String content = null;
// 采用循环不断从Socket中读取客户端发送过来的数据
while ((content = readFrom()) != null) {
// 遍历socketList中的每个Socket,
// 将读到的内容向每个Socket发送一次
for (Socket s : Server.socketList) {
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println(content);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 定义读取客户端数据的方法
private String readFrom() {
try {
return br.readLine();
} catch (IOException e) {
// 删除该Socket
Server.socketList.remove(s);
}
return null;
}
}
.java
import java.io.*;
import java.net.*;
public class {
public static void main(String[] args) throws IOException {
Socket s = new Socket("127.
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(60条)