Socket_TcpClient学习开发中不经意的小问题。
来源:互联网 发布:php session 生成 编辑:程序博客网 时间:2024/05/29 03:13
基于Socket编程是网络编程的基础。一个完整的网络通信需要一个五元组来标识:协议、本地地址、本地端口号、远端地址、远端端口号。Socket编程有TCP和UDP两种,TCP是基于连接的,而UDP是无连接的。本次项目需要的是TCP客户端APP,故主要说明TCP。TCP是基于Client/Server通信模式的,在客户/服务器模式中我们将请求服务的一方称为客户(client),将提供某种服务的一方称为服务器(server)。
客户机/服务器的请求/响应过程示意图如下所示。
图1 客户/服务器通信模型
在了解了Socket编程基础之后,就需要真刀真枪的干了。TCPclient的开发demo有很多。在搜寻了之后,Android应用开发提高篇(4)-----Socket编程(多线程、双向通信),这片博文比较适合初学者,比较容易让人理解Socket编程的过程。
下面遇到的问题都是基于上篇博文的代码。
问题一:按照博文代码,新建android工程之后,生成APK文件,安装之后。发现一点击“连接”,APP就显示“很抱歉,**已停止运行”。
解决过程:这个问题纠结了我很久。代码是源代码,不可能有问题。那就是我的工程有问题。我参照自己的工程和网上成熟的TCPclient_demo进行了对比。在AndroidMainfest.XML发现缺少了:
<uses-permissionandroid:name="android.permission.INTERNET"/>联网许可,需添加。
还有
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17"/> 自动生成工程中设置了目标SDK版本,需将android:targetSdkVersion="17"删除。
原因:targetSdkVersion如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用,比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。你至少需要在minSdkVersion这个版本上将程序完整的跑一遍来确定兼容性是没有问题的。所以最好不要加。本人将之删除或者将“17”改为“8”与minSdkVersion对应都可解决问题。
问题二:进入界面之后自动跳出软键盘。
解决方法:在AndroidMainfest.XML相对应的activity中加入:
android:windowSoftInputMode="stateHidden|adjustPan"
如: <activityandroid:name="com.test.BTClient.BTClient1"
android:windowSoftInputMode="stateHidden|adjustPan"/>需加入
- Socket_TcpClient学习开发中不经意的小问题。
- 开发中不经意的自动拆装箱影响性能问题
- Unity3d中不经意中易出的小错误
- android 不经意遇到的一些小问题汇总
- 学习android开发中遇到的一些小问题
- 问题可能就处在不经意的地方
- 一个不经意的内存泄露问题
- 不经意的
- 不经意的
- 开发中注意的一些小问题
- 开发中碰到的几个小问题
- Android开发中遇到的小问题
- iOS 开发中遇到的小问题
- 开发中遇到的小问题收集
- 网页开发中遇到的小问题
- 不经意中,开始了。
- 学习中遇到的小问题
- ssh学习中遇到的小问题
- 博客开篇
- Linux常用C函数-字符串转换篇
- 结构体的字节对齐 转自海子博客
- K12,再好的愿景遇到商业都会慢慢失去真正的目标
- 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活
- Socket_TcpClient学习开发中不经意的小问题。
- Java编程中“为了性能”需做的26件事
- 凯撒密码
- HDFS DataNode问题-_COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There
- Android给定坐标计算距离
- 安卓后台音乐播放(Service)
- 关于java解压缩文件(rar或者zip)的实现示例
- Linux Shell之sort命令
- ServletRequest与ServletResponse