版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合肥市防洪应急预案
- 2026年幼儿国学启蒙教育的实践模式研究
- 湖北历史试讲指导:《美国联邦政府的建立》 教学设计
- 践行游戏精神优化课程实施
- 康复医学科脑卒中患者理疗方案
- 政治守望精神家园
- 输尿管镜手术护理
- 2025年公务员(工作计划制定)试题及答案
- 新时代女性的四自精神
- 宫外孕手术后护理要点
- 2026广西钦州市公安局面向社会招聘警务辅助人员158人考试备考题库及答案解析
- 2026杭州市临安区机关事业单位编外招聘56人笔试模拟试题及答案解析
- 提高肿瘤治疗前TNM分期评估率
- 2025年四川省绵阳市中考英语真题
- 荨麻疹的定义、分类、诊断及管理国际指南(2026)解读课件
- 2026中证数据校园招聘备考题库(含答案详解)
- 域虎7汽车使用说明书
- LY/T 2986-2018流动沙地沙障设置技术规程
- 发展经济学 马工程课件 3.第三章 中国特色社会主义经济发展理论
- GB/T 28202-2020家具工业术语
- GB/T 12672-2009丙烯腈-丁二烯-苯乙烯(ABS)树脂
评论
0/150
提交评论