La programmation réseau Java peut interagir avec des applications écrites dans d'autres langages, tels que Python. Cet article présente les étapes d'interaction entre Java et Python : Java crée un serveur et écoute sur un port spécifique. Python crée un client qui se connecte à l'adresse IP et au port du serveur Java. Python envoie des données à Java et Java traite et envoie une réponse à Python.
La programmation réseau Java interagit avec d'autres langages
La programmation réseau Java peut non seulement communiquer avec d'autres applications Java, mais également interagir avec des applications écrites dans d'autres langages tels que Python. Cet article montrera comment utiliser la programmation réseau Java pour interagir avec Python et fournira un cas pratique.
1. Créer un serveur Java
import java.net.ServerSocket; import java.net.Socket; import java.io.InputStream; import java.io.OutputStream; public class JavaServer { public static void main(String[] args) throws Exception { // 创建服务端套接字,监听端口 5000 ServerSocket serverSocket = new ServerSocket(5000); // 接受客户端连接,并创建套接字 Socket socket = serverSocket.accept(); // 获取输入流和输出流 InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); // 读取客户端发送的数据 byte[] buffer = new byte[1024]; int length = inputStream.read(buffer); String message = new String(buffer, 0, length); // 处理来自客户端的数据 // ... // 向客户端发送数据 String response = "已收到来自 Python 客户端的数据"; outputStream.write(response.getBytes()); // 关闭套接字和服务端套接字 socket.close(); serverSocket.close(); } }
2. Créer un client Python
import socket # 创建客户端套接字,连接到 Java 服务端的 IP 地址和端口 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientSocket.connect(('127.0.0.1', 5000)) # 发送数据到 Java 服务端 message = "这是来自 Python 客户端的数据" clientSocket.send(message.encode()) # 接收来自 Java 服务端的数据 response = clientSocket.recv(1024) print(response.decode()) # 关闭客户端套接字 clientSocket.close()
Cas pratique : transfert de fichiers
Le code suivant montre un cas pratique de transfert de fichiers utilisant Java et Python :
Serveur Java :
// ... 同 JavaServer 代码 ... // 接收文件内容 byte[] fileContent = new byte[1024]; int totalLength = 0; while ((length = inputStream.read(fileContent)) != -1) { totalLength += length; } // ... 同 JavaServer 代码 ...
Client Python :
# ... 同 PythonClient 代码 ... with open('test.txt', 'rb') as f: fileContent = f.read() clientSocket.send(fileContent) # ... 同 PythonClient 代码 ...
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!