Java函数实现网络编程及基本socket编程实例
网络编程是指利用计算机网络实现的程序设计。在Java语言中,网络编程主要通过Socket来实现,该类可以实现客户端和服务器端之间的通讯。下面是Java函数实现网络编程及基本socket编程实例的详细介绍。
1. Java函数实现网络编程
Java函数实现网络编程需要使用Java Socket类,Socket类是Java语言中实现网络编程的主要工具之一。Socket类提供了一种连接两个计算机之间通信的方式,可以通过该类实现客户端和服务器的通信。以下是通过Java函数实现网络编程的步骤:
1) 服务器端创建Socket对象。
2) 服务器端使用accept()方法等待客户端请求。
3) 客户端创建Socket对象并连接服务器。
4) 客户端发送请求到服务器。
5) 服务器接收来自客户端的请求并返回响应。
6) 客户端接收服务器的响应。
以下是Java函数实现网络编程的代码示例:
服务器端代码:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public class Server {
private static ServerSocket serverSocket;
private static Executor executor;
public static void main(String[] args) throws IOException {
serverSocket = new ServerSocket(8080);
System.out.println("服务器已启动...");
executor = Executors.newCachedThreadPool();
while (true) {
Socket socket = serverSocket.accept();
executor.execute(new ServerThread(socket));
}
}
}
客户端代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8080);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello, server!");
String response = in.readLine();
System.out.println("接收到服务器的响应:" + response);
in.close();
out.close();
socket.close();
}
}
2. 基本socket编程实例
以下是一个基本的socket编程实例,该例子使用Java Socket类实现一个简单的客户端和服务器端之间的通信,客户端向服务器发送一个字符串,服务器将该字符串转换为大写字母并返回给客户端。
服务端代码:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class UpperServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务端已启动...");
while (true) {
Socket socket = serverSocket.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data = reader.readLine();
System.out.println("客户端发送的数据:" + data);
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
writer.println(data.toUpperCase());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码:
import java.io.*;
import java.net.Socket;
public class UpperClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data = "hello, server!";
System.out.println("客户端发送的数据:" + data);
writer.println(data);
String response = reader.readLine();
System.out.println("服务端返回的响应:" + response);
writer.close();
reader.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上就是Java函数实现网络编程及基本socket编程实例的介绍。网络编程在现代计算机的应用中是非常重要的,掌握它的基本知识点可以帮助我们更好地理解程序与网络的交互方式。
