Python与Java Socket通信实战:单线程客户端与服务端实现

Miles
Miles
发布时间:2026-10-14| 5人浏览过
原创

本文详细演示了Python客户端与Java服务端通过Socket进行单线程通信的完整实现。涵盖Java服务端监听端口2580、接收数据并返回响应的代码,以及Python客户端连接、发送消息并接收结果的示例。通过具体代码片段,帮助开发者快速掌握跨语言Socket通信的基本流程与关键参数设置。

Java服务端单线程实现

首先介绍Java服务端的基础实现,采用单线程模式处理连接。服务端代码创建ServerSocket监听指定端口,接受客户端连接后获取输入流和输出流。通过读取字节数组将接收到的数据转换为字符串打印,随后通过输出流发送固定格式的响应字符串,最后关闭服务器连接。该示例展示了Java网络编程中IO流操作的基本步骤,包括端口绑定、数据读写及资源释放。


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Server
 */
public class Server {
  public static void main(String[] args) throws IOException {
    ServerSocket server = new ServerSocket(2580);
    Socket socket = server.accept();
    InputStream is = socket.getInputStream();
    OutputStream out=null;
    byte[] bytes = new byte[2048];
    int len = 0;
    String results = null;
    try {
      len = is.read(bytes, 0, 2048);
      results = new String(bytes, 0, len);
      System.out.println("from Client information:" + results);
      out=socket.getOutputStream();
      out.write("J-S-P_ I am Server".getBytes());
    } catch (IOException e) {
      e.printStackTrace();
    }
    
    server.close();
    System.out.println("结束");

  }
}

Python客户端单线程实现

接着展示Python客户端的单线程实现示例。客户端代码定义目标IP为本地回环地址,端口与服务端保持一致,缓冲区大小设为2048字节。创建TCP套接字并连接服务端后,发送包含特定标识的UTF-8编码字符串。随后接收服务端的响应数据,解码为字符串打印输出,最后关闭客户端套接字。该部分代码体现了Python中socket库的基本用法,包括连接建立、数据发送与接收流程。


from socket import *

serverName = '127.0.0.1'
serverPort = 2580
BUFSIZ = 2048
ADDR = (serverName, serverPort)

clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect(ADDR)
clientSocket.send("J-S-P_ I am Client".encode('utf-8'))
returnData = clientSocket.recv(BUFSIZ)
print('from Server information:%s' % returnData.decode('utf-8'))
clientSocket.close()
print("结束")

总结与扩展

以上即为Python连接Java Socket服务端的完整实现方法。通过上述单线程示例,可以清晰看到两端代码的对应关系及通信流程。如需了解更多相关技术细节或进阶应用场景,建议参考本站往期文章或继续浏览后续内容。感谢阅读,希望本文能为您的开发工作提供帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。