一个关于android用socket通信时的一个非常奇怪的bug
如下android连接服务端的代码:
try {
Toast.makeText(MainActivity.this, "wwwww", Toast.LENGTH_LONG).show();
Socket socket = new Socket("10.55.44.66", 30003);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = br.readLine();
show.setText(str);
br.close();
socket.close();
} catch (Exception e) {
// TODO: handle exception
}
连接不上服务端,要去掉Toast那条语句才可以。
第二个bug:
如下客户端的代码:
try {
ServerSocket ss = new ServerSocket(30003);
while(true) {
Socket socket = ss.accept();
InetAddress inetAddress = socket.getInetAddress();
System.out.println(inetAddress.getHostAddress());
System.out.println(inetAddress.getHostName());
OutputStream os = socket.getOutputStream();
os.write("睡你妈逼,起来嗨!".getBytes("utf-8"));
os.flush();
os.close();
socket.close();
}
} catch (Exception e) {
// TODO: handle exception
}
虽然连接得上服务端,但是会连续打印出两次ip地址,而没有打印.getHostName(),并且数据传输的时候接收不了,要把相应的android程序先放到后台,然后在重新运行,才可以接收数据。但是我把
System.out.println(inetAddress.getHostName());
这句话去掉就不会出现这种情况,一打开程序数据就传输到了android应用中了。很神奇的bug,个位大神们帮我试试咯,服务端和客户端就上面那两段代码
相关推荐
Appium Settings应用启动超时:Android自动化测试环境深度排查指南
在移动应用自动化测试领域,Appium作为主流的开源框架,其核心工作原理是通过客户端-服务器架构与移动设备进行通信。在Android平台上,Appium依赖于一个名为Appium Settings的系统工具应用作为设备端代理,负责执行权限提升、系统设置模拟和事件注入等关键操作。当这个代理应用未能正常启动时,会导致整个自动化流程在初始化阶段失败,表现为常见的“Appium Settings app is not running after 5000ms”错误。这一问题的技术价值在于,它揭示了自动化测试框架与复
SensorSimulator2.0实战:Android传感器模拟与真机调试全攻略
在Android开发中,传感器数据(如GPS定位、陀螺仪、加速度计、光线传感器等)依赖系统底层硬件通道,难以通过简单的Mock方式模拟,导致定位功能、体感交互等场景的真机测试与复现成本极高。SensorSimulator作为一款专业的传感器模拟工具,通过PC端控制台与手机端客户端库的配合,将模拟数据实时注入App,帮助开发者在真机环境下精准控制各类传感器输入。其2.0版本重构了通信协议,大幅降低数据延迟,并新增轨迹回放、渐变光线模拟等功能,支持从基础数值调节到复杂路径回放的完整测试流程。工程实践中,开发者可
RK3588边缘AI零拷贝跨进程通信:DMA-BUF实战指南
在边缘AI视觉项目中,性能瓶颈常源于数据搬运而非模型推理本身。零拷贝技术通过避免不必要的内存复制,让多个模块直接操作同一物理内存,从而显著降低延迟与CPU占用。RK3588作为异构SoC,其CPU、NPU、GPU间数据交换依赖DMA与IOMMU机制,对缓存一致性要求严苛。DMA-BUF作为内核标准框架,支持跨设备与跨进程共享缓冲区,成为嵌入式Linux下实现零拷贝的首选方案。本文从内存架构原理出发,剖析DMA-BUF在RK3588上的工程实现路径,结合多进程AI视觉流水线,展示如何通过文件描述符传递与缓冲区
Pico 4大空间VR开发实战:UE5核心配置、打包避坑与性能优化
虚拟现实(VR)开发通过头戴设备与引擎构建沉浸式三维环境,其核心原理在于利用空间定位与实时渲染技术实现用户与虚拟世界的自然交互。在工程实践中,移动VR开发尤其注重性能优化与平台适配,以确保流畅稳定的用户体验。大空间VR作为进阶应用场景,要求在远超常规房间尺度的物理区域内实现1:1的精确空间映射,这对追踪坐标系管理、资源加载与渲染管线提出了更高要求。本文聚焦于使用Unreal Engine 5与Pico 4进行大空间VR开发的实战经验,深入剖析了从项目初始设置、关键的SetTrackingOrigin配置,到
MediaPipe与Unity结合:基于摄像头的实时手部面部捕捉驱动虚拟角色技术解析
实时动作捕捉是计算机视觉与交互领域的热门方向,传统方案依赖昂贵设备,而基于单目摄像头与关键点检测的轻量级方案正大幅降低门槛。MediaPipe作为跨平台的视觉框架,能够高效提取手部21个关键点与面部478个关键点,为手势识别和表情驱动提供基础数据。通过UDP通信将归一化坐标传输至Unity,再经坐标变换与平滑滤波,即可驱动虚拟角色实现同步动作与表情。该技术价值在于低成本、低延迟且易扩展,在虚拟主播、沉浸式交互、AR应用及手势控制等场景中具有广阔前景。文章围绕这一技术路径,系统介绍从视觉检测、数据传输到角色驱


