java实现p2p及时通信
时间: 2023-11-27 11:06:16 浏览: 130
以下是Java实现P2P即时通信的步骤:
1.创建一个ServerSocket对象,指定端口号,等待客户端连接。
2.创建一个Socket对象,指定服务器IP地址和端口号,连接服务器。
3.使用Socket对象的getInputStream()和getOutputStream()方法获取输入输出流,进行数据的读写。
4.使用线程来处理客户端的请求,避免阻塞主线程。
5.使用Java的GUI库(如Swing或JavaFX)创建用户界面,实现聊天窗口和输入框等组件。
6.使用Java的网络编程库(如Java NIO)实现多人在线同时聊天的功能。
以下是一个简单的Java P2P即时通信的示例代码:
```java
import java.io.*;
import java.net.*;
public class ChatServer {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8888);
System.out.println("Server started.");
Socket socket = server.accept();
System.out.println("Client connected.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String line;
while ((line = in.readLine()) != null) {
System.out.println("Client: " + line);
out.println("Server: " + line);
}
in.close();
out.close(); socket.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class ChatClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
System.out.println("Connected to server.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = reader.readLine()) != null) {
out.println(line);
System.out.println("Server: " + in.readLine());
}
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
阅读全文