【JAVA】创建一个不需要依赖的websocket服务器接收音频文件

【JAVA】创建一个不需要依赖的websocket服务器接收音频文件

JAVA服务端

服务端代码见链接:https://gitee.com/likexiang/like-code/blob/master/ESP32-S3-CAM/JavaWebsocket/NativeWebSocketAudioServer.java

PYTHON客户端

python 复制代码
# 纯Python测试客户端(无依赖)
import websocket
import time

# 连接服务器
ws = websocket.create_connection("ws://localhost:8888")
print("连接响应:", ws.recv())

# 发送格式指定指令
ws.send("set_format:wav")
print("格式响应:", ws.recv())

# 读取本地音频文件并分片发送
with open("test_audio.wav", "rb") as f:
    while True:
        data = f.read(1024)  # 每次1024字节
        if not data:
            break
        ws.send_binary(data)
        time.sleep(0.01)  # 模拟实时上传

# 发送结束上传指令
ws.send("finish_upload")
print("结束响应:", ws.recv())

# 关闭连接
ws.close()

测试

服务端打印

复制代码
纯Java WebSocket音频服务器已启动(端口:8888)
音频保存路径:D:\java\AIAS-main\AIAS-main\1_image_sdks\onlyTest\received_audio
=====================================
客户端连接:/127.0.0.1:52870
客户端[/127.0.0.1:52870]WebSocket握手成功
收到客户端[/127.0.0.1:52870]文本指令:set_format:wav
客户端[/127.0.0.1:52870]无音频数据可保存
客户端[/127.0.0.1:52870]连接已关闭
客户端连接:/127.0.0.1:52941
客户端[/127.0.0.1:52941]WebSocket握手成功
收到客户端[/127.0.0.1:52941]文本指令:set_format:wav
收到客户端[/127.0.0.1:52941]音频数据:本次1024字节 | 累计1024字节
收到客户端[/127.0.0.1:52941]音频数据:本次1024字节 | 累计2048字节
收到客户端[/127.0.0.1:52941]音频数据:本次1024字节 | 累计3072字节

客户端打印

复制代码
D:\java\AIAS-main\AIAS-main\1_image_sdks\onlyTest\src\main>python socketClient.py
连接响应: WebSocket连接成功,可开始上传音频数据(支持mp3/wav/pcm格式)
格式响应: 已设置音频保存格式为:wav
结束响应: 音频文件已保存完成!
相关推荐
叼烟扛炮11 分钟前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮16 分钟前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
LMT流氓兔1 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
wangbing11253 小时前
平台介绍-modbus设备调试
java
开开心心就好3 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
一枕槐安4873 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
黑十3 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
西索斯coding3 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
wuminyu4 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
Flynn Liang4 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling