在Ubuntu上进行Java网络编程,你可以使用Java提供的标准库,如java.net包中的类和接口。以下是一个简单的Java网络编程示例,包括一个服务器端和一个客户端。
1. 服务器端
创建一个名为Server.java
的文件,并添加以下代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
int port = 12345;
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Server is listening on port " + port);
while (true) {
Socket socket = serverSocket.accept();
System.out.println("New client connected");
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
String message;
while ((message = reader.readLine()) != null) {
System.out.println("Received from client: " + message);
writer.println("Server received: " + message);
}
socket.close();
}
} catch (IOException e) {
System.out.println("Server exception: " + e.getMessage());
e.printStackTrace();
}
}
}
2. 客户端
创建一个名为Client.java
的文件,并添加以下代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String host = "localhost";
int port = 12345;
try (Socket socket = new Socket(host, port)) {
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
// Send a message to the server
writer.println("Hello, Server!");
// Receive a response from the server
String message = reader.readLine();
System.out.println("Received from server: " + message);
} catch (UnknownHostException e) {
System.out.println("Client exception: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.out.println("Client exception: " + e.getMessage());
e.printStackTrace();
}
}
}
3. 编译和运行
在终端中,转到包含Server.java
和Client.java
的目录,然后分别编译它们:
javac Server.java
javac Client.java
首先运行服务器端:
java Server
然后在另一个终端窗口中运行客户端:
java Client
你应该会看到服务器端接收到来自客户端的消息,并向客户端发送确认消息。
这只是一个简单的示例,你可以根据需要扩展它,例如添加多线程以处理多个客户端连接,或者实现更复杂的通信协议。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
相关推荐:Ubuntu中Java网络编程如何实现