android – java.net.SocketException:sendto failed:EPIPE(Broken pipe)通过与localhost的数据连接

android – java.net.SocketException:sendto failed:EPIPE(Broken pipe)通过与localhost的数据连接,第1张

概述在我的 Android应用程序中,我想读取音频流并解析其shoutcast元数据. 我在NPR项目中使用StreamProxy工作: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f711977 在我的 Android应用程序中,我想读取音频流并解析其shoutcast元数据.
我在NPR项目中使用StreamProxy工作:
http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f71197762dbe10e72

问题是它不能通过数据连接工作. NPR也遇到了同样的问题.

总而言之,此代理作为本地Web服务器运行,在应用程序和远程流之间建立接口.它使用生成的自定义端口在localhost 127.0.0.1上运行.
当服务器正在读取流数据时,它会将其复制到应用程序,因为您可以在StreamProxy的第223行阅读:

clIEnt.getoutputStream().write(buff,readBytes);

但是,该行通过数据连接产生此异常:

java.net.socketException: sendto Failed: EPIPE (broken pipe)

我不是套接字和流媒体方面的专家.在这种情况下,我没有得到wifi和数据连接之间的区别.

解决方法 以下几个解决方案!

首先确保您的客户端与您尝试加入的服务器具有相同的版本.如果您没有相同的版本,可以下载MCNostalgia并使用它来降级您的客户端.

更新Java

如果您不希望出现任何不兼容问题,那么我建议您安装最新的Java运行时环境(jre 7.0_05).在此之前,建议您卸载其他以前的版本.如果您的 *** 作系统以32位运行,则仅安装32位(x86)版本.如果您有64位,请按照这个精确的顺序安装以64位开头,然后安装32位.

禁用不需要的网络主机

Hamachi和Virtual Box可能就是其中之一.它们可能会减慢或干扰您的连接.访问网络控制面板,然后单击“修改网卡”(或类似的东西).右键单击需要禁用的主机,然后单击“禁用”.

禁用防火墙

您可以在控制面板中访问防火墙设置并在那里禁用它.如果这不起作用,您可以尝试禁用路由器的防火墙.如果这些失败尝试禁用您的防病毒软件(不建议使用这些选项,因为黑客可以轻易地渗入您的计算机).

这也适用于:

> Internal exception: java.net.socketException: Software  caused> connection abort: socket write error
总结

以上是内存溢出为你收集整理的android – java.net.SocketException:sendto failed:EPIPE(Broken pipe)通过与localhost的数据连接全部内容,希望文章能够帮你解决android – java.net.SocketException:sendto failed:EPIPE(Broken pipe)通过与localhost的数据连接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1138474.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存