今天我要测试wifi的ping值,所以做了一个socket的Android作为客户端,电脑使用Java作为服务器的一个socket通信测试程序。
发现了一些常见的问题:
1.Andorid中的socket编程,必须要加INTERNET权限,不然会抛出IOException异常。这个异常一般是看不到的,必须要调试才可以看到内部的文字,所以以后千万不可以忽视异常的处理,不然会很难找到错误。
2.解决了上面的问题后,发现了Android从某个版本开始,就必须严格的把socket编程的东西放到UIThread外。否则会抛出异常。SocketInMainThread的异常。(差不多这东西)
3.然后发现序列化出了问题,发现,ClassNotFound。原来是序列化的时候他是和包名有关的,所以一定要有相同的包名。否则也会发生序列化不对的问题。。
其他的总结:
1.wifi的电脑对手机延迟是50-60之间。同时,使用ping自己的手机,发现延迟很大(55-200),但是实际编程发现不对劲。。。也很小。
2.蓝牙还是比wifi延迟大,感觉。我写了个手机游戏,蓝牙天大的延迟,而且延迟和代码有关,我总结了要写一个如何代码层面减少延迟的文章。