ホームページ  >  記事  >  Java  >  Java ネットワーク プログラミングは、Python などの他の言語とどのように対話しますか?

Java ネットワーク プログラミングは、Python などの他の言語とどのように対話しますか?

PHPz
PHPzオリジナル
2024-04-15 17:45:01411ブラウズ

Java ネットワーク プログラミングは、Python などの他の言語で書かれたアプリケーションと対話できます。この記事では、Java と Python 間の対話手順を示します。Java はサーバーを作成し、特定のポートで待機します。 Python は、Java サーバーの IP アドレスとポートに接続するクライアントを作成します。 Python はデータを Java に送信し、Java は処理して応答を Python に送信します。

Java ネットワーク プログラミングは、Python などの他の言語とどのように対話しますか?

Java ネットワーク プログラミングは他の言語と対話します

Java ネットワーク プログラミングは、他の Java アプリケーション言語 (たとえば、 Python) で書かれたアプリケーションと対話します。この記事では、Java ネットワーク プログラミングを使用して Python と対話する方法を示し、実際の事例を示します。

1. 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. 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()

実際のケース: ファイル転送

次のコードは、Java と Python を使用して実装されたファイル転送の実際のケースを示しています。

Java サーバー側:

// ... 同 JavaServer 代码 ...

// 接收文件内容
byte[] fileContent = new byte[1024];
int totalLength = 0;
while ((length = inputStream.read(fileContent)) != -1) {
    totalLength += length;
}

// ... 同 JavaServer 代码 ...

Python クライアント:

# ... 同 PythonClient 代码 ...
with open('test.txt', 'rb') as f:
    fileContent = f.read()
clientSocket.send(fileContent)

# ... 同 PythonClient 代码 ...

以上がJava ネットワーク プログラミングは、Python などの他の言語とどのように対話しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。