java接受python返回回来的数据,并且展示在前端?

java接受python返回回来的数据,并且展示在前端?,第1张

可以使用 Java 的 Socket 编程实现前后端之间的数据交互。具体来说,可以在 Java 后端中创建一个服务器程序,在 Python 脚本中使用 Socket 将数据发送到该服务器。

以下是一个简单的示例,演示了如何使用 Socket 在 Python 和 Java 之间传递数据:

Python 脚本:

```python

import socket

# 创建 Socket 对象

s = socketsocket()

# 连接服务器

host = 'localhost' # 服务器的主机名或 IP 地址

port = 12345 # 服务器使用的端口号

sconnect((host, port))

# 发送数据到服务器

data = 'Hello, Java!'

ssendall(dataencode())

# 接收服务器返回的数据

recv_data = srecv(1024)decode()

print('Received data:', recv_data)

# 关闭连接

sclose()

```

Java 后端:

```java

import javanet;

import javaio;

public class Server {

public static void main(String[] args) throws Exception {

// 创建服务器 Socket 对象并绑定端口

int port = 12345; // 服务器使用的端口号

ServerSocket server = new ServerSocket(port);

Systemoutprintln("Server started");

// 等待客户端连接

Socket client = serveraccept();

Systemoutprintln("Client connected");

// 读取客户端发送的数据

BufferedReader in = new BufferedReader(new InputStreamReader(clientgetInputStream()));

String data = inreadLine();

Systemoutprintln("Received data: " + data);

// 准备要发送给客户端的数据

String response = "Hello, Python!";

// 向客户端发送数据

PrintWriter out = new PrintWriter(clientgetOutputStream(), true);

outprintln(response);

// 关闭连接

inclose();

outclose();

clientclose();

serverclose();

}

}

```

在这个示例中,Python 脚本通过 Socket 连接到 Java 后端,并将字符串 `'Hello, Java!'` 发送给服务器。Java 后端接收到数据后,将其输出到控制台上,并向客户端(即 Python 脚本)发送字符串 `'Hello, Python!'`。Python 脚本再将收到的字符串输出到控制台上。

需要注意的是,以上示例中的代码只是一个简单的框架,需要根据具体需求进行修改和优化。同时,为避免出现字符集不一致等问题,建议在发送和接收数据时都指定明确的字符编码方式,例如 UTF-8。

随着互联网的不断发展,无服务器应用编程开发成为了程序员学习的又一个发展方向,下面北大青鸟http://wwwkmbdqncn/就一起来了解一下,实现无服务器编程开发的框架都有哪些呢。

Nimbus是一个旨在简化FaaS应用程序开发、测试和部署的Java框架。

Nimbus提供了一组与云平台无关的公共接口,用于与云提供商的无服务器功能发生交互。

对于那些想要开发简单的应用程序的新手们来说,他们需要面临非常陡峭的学习曲线。

他们可能只想要部署一些HTTP端点用来保存数据,但仍然要学习很多与云相关的概念。

Nimbus的主要优势是不需要通过创建配置文件来声明云资源(如AWSSAM或者Serverless框架),这样开发人员“就不会因为忘记了某些参数而犯错”。

另外,Nimbus会对部署参数进行编译时检查,以便尽早检测出错误。

Nimbus还支持其他的操作:WebSocketFunction:用于处理websocket请求;DocumentStoreFunction:用于执行因文档存储变更而触发的代码;KeyValueStoreFunction:用于执行因键值存储变更而触发的代码;NotificationFunction:用于执行由通知触发的代码;QueueFunction:用于执行因队列变化而触发的代码;BasicFunction:用于执行不需要触发器的代码;FileStorageFunction:用于执行基于文件存储事件(文件创建和删除)的代码;AfterDeploymentFunction:用于执行部署之后需要立即执行的操作。

除了支持各种不同的操作之外,Nimbus还支持几种数据存储类型。

其他支持的数据存储(和客户端)包括:用于存储关系型数据的关系型存储、用于存储键值数据的键值存储和用于存储对象的文件存储(支持静态网站托管和文件上传)。

测试也是构建无服务器应用程序的另一个常见难点。

Nimbus提供了单元测试和集成测试支持。

在进行单元测试时,可以为上述列表中的任何一个操作创建本地部署,可以接受请求,并验证函数是否被正确调用,或者数据是否被正确保存。

Nimbus对集成测试的支持相对有限,只支持基于HTTP的测试。

在进行集成测试时,会启动一个本地Web服务器,用于验证请求调用了正确的函数。

在Java中实现TCP协议编程

ServerSocket:编写TCP网络服务程序,首先要用到javanetServerSocket类用以创建服务器Socket

构造方法:

ServerSocket(int port):创建绑定到特定端口的服务器套接字

ServerSocket(int port, int backlog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套接字并将其绑定到指定的本地端口号。

ServerSocket(int port, int backlog, InetAddress bindAddr):使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。

Socket:客户端要与服务器建立连接,必须先创建一个Socket对象

常用构造方法

Socket(String host, int port):创建一个流套接字并将其连接到指定主机上的指定端口号。

Socket(InetAddress address, int port):创建一个流套接字并将其连接到指定 IP 地址的指定端口号。

服务器端程序调用ServerSocket类中的accept()方法等待客户端的连接请求,一旦accept()接收了客户端连接请求,该方法返回一个与该客户端建立了专线连接的Socket对象,不用程序去创建这个Socket对象。建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象。

TCP服务器与TCP客户端间的数据的接受图示:

创建一个TCP服务器端程序的步骤

(1)创建一个ServerSocket

(2)从ServerSocket接受客户连接请求

(3)创建一个服务线程处理新的连接

(4)在服务线程中,从socket中获得I/O流

(5)对I/O流进行读写操作,完成与客户的交互

(6)关闭I/O流

(7)关闭Socket

ServerSocket server=new ServerSocket(port)

Socket s =serveraccept();

ObjectInputStream in=new ObjectInputStream(sgetInputStream());

ObjectOutputStream out=new ObjectOutputStream(sgetOutputStream());

outclose();

inclose();

sclose();

创建一个TCP客户端程序的步骤

(1)创建Socket

(2)获得I/O流

(3)对I/O流进行读写操作

(4)关闭I/O流

(5)关闭Socket

Socket connection =new Socket(127001,9009);

ObjectInputStream input=new ObjectInputStream(connectiongetInputStream());

ObjectOutputStream output=new ObjectOutputStream(connectiongetOutputStream());

outputclose();

inputclose();

connectionclose();

用TCP实现服务器与客户端的“聊天”:

实例代码:

客户端:

package comhbsinet;

import javanetSocket;

import javaio;

public class TcpClient{

public static void main(String[] args) throws Exception {

// 1建立tcp客户端socket,要确定要连接的服务器ip,port

Socket s = new Socket("1921684987", 9009);

// 获取键盘录入

BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));

// 2通过建立的socket,获取输出流对象

// 数据输出给服务器端

OutputStream out = sgetOutputStream();

BufferedWriter bwout = new BufferedWriter(new OutputStreamWriter(out));

// 获取服务器端返回的数据

// 读取服务器端发过来的信息InputStreamReader()

BufferedReader brin = new BufferedReader(new InputStreamReader(

sgetInputStream()));

String line = null;

while ((line = brreadLine()) != null) {

if (lineequals("over"))

break;

bwoutwrite(line);

bwoutnewLine();

bwoutflush();

String str = brinreadLine();

Systemoutprintln("server:" + str);

}

brclose();

sclose();

}

}

服务器端:

package comhbsinet;

import javaioBufferedReader;

import javaioBufferedWriter;

import javaioInputStream;

import javaioInputStreamReader;

import javaioOutputStreamWriter;

import javanetServerSocket;

import javanetSocket;

public class TcpServer{

public static void main(String[] args) throws Exception {

// 1建立服务器socket

ServerSocket ss = new ServerSocket(9009);

// 2调用accept()

Socket s = ssaccept();

Systemoutprintln(sgetInetAddress()getHostAddress()

+ "connection");

// 读取客户的信息的输入流

InputStream in = sgetInputStream();

BufferedReader brin = new BufferedReader(new InputStreamReader(in));

// 向客户端发送信息输出流,服务端向客户端返回信息OutputStreamWriter()

BufferedWriter brout = new BufferedWriter(new OutputStreamWriter(

sgetOutputStream())); String line = null;

while ((line = brinreadLine()) != null) {

Systemoutprintln("client:" + line);

broutwrite(linetoUpperCase());//服务器端收到信息后,将信息转为大写返回给客户端toUpperCase()

broutnewLine();

broutflush();

}

sclose();

ssclose();

}

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java接受python返回回来的数据,并且展示在前端?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情