当前位置: 代码迷 >> Android >> android socket有关问题
  详细解决方案

android socket有关问题

热度:78   发布时间:2016-05-01 15:06:59.0
android socket问题
05-05 10:14:51.910: W/System.err(774): java.net.SocketException: Broken pipe
05-05 10:14:51.910: W/System.err(774): java.net.SocketException: Broken pipe
05-05 10:14:51.920: W/System.err(774): at org.apache.harmony.luni.platform.OSNetworkSystem.write(Native Method)
05-05 10:14:51.920: W/System.err(774): at dalvik.system.BlockGuard$WrappedNetworkSystem.write(BlockGuard.java:284)
05-05 10:14:51.920: W/System.err(774): at org.apache.harmony.luni.platform.OSNetworkSystem.write(Native Method)
05-05 10:14:51.920: W/System.err(774): at dalvik.system.BlockGuard$WrappedNetworkSystem.write(BlockGuard.java:284)
05-05 10:14:51.920: W/System.err(774): at org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:472)
05-05 10:14:51.930: W/System.err(774): at org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:472)
05-05 10:14:51.930: W/System.err(774): at org.apache.harmony.luni.net.SocketOutputStream.write(SocketOutputStream.java:48)
05-05 10:14:51.930: W/System.err(774): at com.aonesoft.android.socket.SocketClient$SocketSendThread.run(SocketClient.java:194)
05-05 10:14:51.930: W/System.err(774): at org.apache.harmony.luni.net.SocketOutputStream.write(SocketOutputStream.java:48)
05-05 10:14:51.930: W/System.err(774): at com.aonesoft.android.socket.SocketClient$SocketSendThread.run(SocketClient.java:194)



在网上说有这样的原因“终于找到很明晰的原因了,原因是往一个socket写一个序列化对象写了2次,因为网络不稳定,所以有短开重新连接的机制,但是由于两太机器通过服务代理的方式传输,所以server无法发现客护短客户端退出,这样造成客户端列表里有一个机器一个端口的两个socket对象,这样往socket里写的时候就造成一个对象写两次的现象”
不知道我这种是不是这种原因造成的,怎么样避免呢?

------解决方案--------------------
请问楼主怎么解决的??求助啊!
------解决方案--------------------
socket通信同时最为重要的就是socket的恢复机制,比如网络的转换,保存socket的通信地址什么的,这方面就没有深入的了解了
  相关解决方案