如何通过Java进行网络编程?
在Java中,我们可以通过Java的Socket和ServerSocket类来进行网络编程。以下是一个简单的示例:
- 客户端代码(发送数据):
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建连接
Socket socket = new Socket("localhost", 1234);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 发送数据
String message = "Hello, Server!";
byte[] bytes = message.getBytes("utf-8");
outputStream.write(bytes);
// 关闭连接
socket.close();
System.out.println("Data sent successfully!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error occurred while sending data.");
}
}
}
- 服务器端代码(接收数据):
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建服务器端的Socket
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("Server is listening for incoming connections...");
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected successfully!");
// 获取输入流
InputStream inputStream = clientSocket.getInputStream();
// 创建输出流
OutputStream outputStream = new PrintWriter(new BufferedOutputStream(inputStream), "utf-8"));
byte[] bytes = new byte[1024];
int count;
while ((count = inputStream.read(bytes))) != -1) {
String message = new String(bytes, 0, count));
System.out.println("Server received data: " + message);
// 将数据发送回客户端
outputStream.write(message.getBytes("utf-8")));
}
// 关闭连接和流
clientSocket.close();
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error occurred while listening or accepting connections.");
}
}
}
这个示例中,客户端发送一个数据字符串给服务器,服务器接收到数据后将其原样返回给客户端。
还没有评论,来说两句吧...