java.net.SocketException: Connection reset by peer: socket write error

最近在做自己的毕业设计,名字是“基于Android的校园二手商品交易系统”,于是想把电脑作为服务器,以Android手机作为客户端,做一个C/S结构的程序。

可是一开始就遇到了一个特别头疼的问题。。。我是用Wifi连接电脑,台式电脑,自己买的无线网卡,然后想测试一下Socket通信,可是Socket连接的时候老是报错,而且关键是同样的代码,以另外一台电脑而不是手机作为客户端时就不会出错。错误如下:

java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source)
at java.io.ObjectOutputStream.<init>(Unknown Source)
at dgy.server.Server.<init>(Server.java:25)
at dgy.server.Server.main(Server.java:34)

头疼了好几天大哭大哭大哭,后来有一次我用电脑当Web服务器的时候,发现手机用浏览器也访问不到Web应用,我就奇了怪了。。。但是一想,电脑用Localhost就能访问到啊,为什么我直接用其本地地址就访问不到了,难道Localhost并不是本地IP:172.19.51.215,而是无线网卡的地址:192.168.191.1 吗? 然后我把地址换成192.168.191.1,哈哈哈,竟然访问到了Web服务器,说明我之前的Android程序,也是同样的道理,在New ServerSocket的时候,服务是建立在了无线网卡地址和本地地址上,也就是有两个地址。

所以,你把Android的New Socket("172.19.51.215",7878);换成New Socket("192.168.191.1",7878);就OK了,换句话说,是访问你的无线网卡,本来你手机的地址就和本地地址不在一个网段。。。哈哈哈,真是太开心了,希望能帮到你!!!大笑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值