




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android开发实战经典第12章:网络通信 与Socket交换数据北京魔乐科技软件学院李兴华研发部本章目标通过Android与Socket完成基本的Echo程序实现;通过对象序列化进行大数据的传输;E-MAIL:利用Socket交换E-MAIL:范例:Echo程序开发E-MAIL:范例:定义服务器端程序 MyServer.javaE-MAIL:package org.lxh.server;import java.io.BufferedReader; import java.io.Input
2、StreamReader; import java.io.PrintStream; import .ServerSocket; import .Socket;public class MyServer public static void main(String args) throws Exception / 所有异常抛出ServerSocket server = new ServerSocket(8888);/ 在8888端口上Socket client = server.accept();/ 接收客户端请求PrintStream out = new Pri
3、ntStream(client.getOutputStream(); / 取得客户端输出流BufferedReader buf = new BufferedReader(new InputStreamReader(client.getInputStream();/ 字符缓冲区读取StringBuffer info = new StringBuffer();/ 接收客户端的信息info.append(Android : );/ 回应数据info.append(buf.readLine();/ 接收数据out.print(info);/ 发送信息out.close();/ 关闭输出流buf.clo
4、se();/ 关闭输入流client.close();/ 关闭客户端连接server.close();/ 关闭服务器端连接范例:定义布局管理器 main.xmlE-MAIL:布局管理器高度为屏幕高度 默认显示文字默认显示文字范例:定义Activity程序,连接服务器:public class MyClientDemo extends Activity private Button send = null;/ 定义按钮组件private TextView info = null;/ 定义文本组件Overridepublic void onCre
5、ate(Bundle savedInstanceState) super.onCreate(savedInstanceState); super.setContentView(R.layout.main);/ 调用布局this.send = (Button) super.findViewById(R.id.send);/ 取得组件 = (TextView) super.findViewById(R.);/ 取得组件this.send.setOnClickListener(new SendOnClickListenerImpl();private class Se
6、ndOnClickListenerImpl implements OnClickListener Overridepublic void onClick(View view) try Socket client = new Socket(21, 8888);/ 指定服务器PrintStream out = new PrintStream(client.getOutputStream();/ 打印流输出BufferedReader buf = new BufferedReader(new InputStreamReader(client.getInputStream();
7、out.println(北京魔乐科技软件学院);/ 发送数据MyClientD.setText(buf.readLine();/ 设置文本out.close();/ 关闭输出流buf.close() ;/ 关闭输入流client.close();/ 关闭连接 catch (Exception e) e.printStackTrace();E-MAIL上传文件下面使用Android和Socket间完成一个文件上传的功能,但是在本程序中不仅要完成图片的上传,同时也会附加多种数据(文件的标题、大小、类型等),所以如果要想实现这样的数据传送,那么会采用两种方式完成:方式一:直
8、接将所有数据按照字节数组传送。方式二:通过对象序列化的方式完成。E-MAIL:范例:使用对象序列化进行文件上传使用一个专门的上传数据封装类,将所有的数据内容、文件内容(以字节数组保存)进行封装,而后利用对象序列化的方式,将这个对象传送到服务器端。E-MAIL:范例:定义包装数据的序列化对象类 UploadFile.javaE-MAIL:package org.lxh.util;import java.io.Serializable; SuppressWarnings(serial)public class UploadFile implements Serializable / 进行序列化传输private String title;/ 信息标题private byte contentData;/ 文件内容private String mimeType;/ 文件类型private long contentLength;/ 文件长度private String ext;/ 扩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肠梗阻健康课件
- 肝胆病中医诊治技术课件
- 安全联锁培训课件模板
- 高考辽宁真题数学试卷
- 拱墅区小升初数学试卷
- 典中点鲁教版五四制数学试卷
- 高三历年高考数学试卷
- 二年级上学期期中数学试卷
- 高一一学期数学试卷
- 2025年03月浙江台州市立医院招聘高层次(博士高级职称)卫技人员15人笔试历年专业考点(难、易错点)附带答案详解
- GB/T 18391.6-2009信息技术元数据注册系统(MDR)第6部分:注册
- GB/T 14501.6-2008六氟化铀分析方法第6部分:铀的测定
- 日立电梯MCA调试培训课件
- 国道市政化改造示范段交通疏解方案
- 2023年辽宁省农业信贷融资担保有限责任公司招聘笔试题库及答案解析
- 光学玻璃课件
- 智力残疾康复训练课件
- 焊接过程及记录与检查表
- 铸造作业指导书
- 三菱电机FX-PLC自动化培训课件(完整版)
- (完整版)全国校园篮球特色学校申报材料
评论
0/150
提交评论