- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
与Socket交换数据 Android安卓开发课件方案策划.ppt
Android开发实战经典
第12章:网络通信
—— 与Socket交换数据
李兴华
北京魔乐科技软件学院
本章目标
通过Android与Socket完成基本的Echo程序实现;
通过对象序列化进行大数据的传输;
利用Socket交换
范例:Echo程序开发
范例:定义服务器端程序 —— MyServer.java
package org.lxh.server;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.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 PrintStream(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.close(); // 关闭输入流
client.close(); // 关闭客户端连接
server.close(); // 关闭服务器端连接
}
}
上传文件
下面使用Android和Socket间完成一个文件上传的功能,但是在本程序中不仅要完成图片的上传,同时也会附加多种数据(文件的标题、大小、类型等),所以如果要想实现这样的数据传送,那么会采用两种方式完成:
方式一:直接将所有数据按照字节数组传送。
方式二:通过对象序列化的方式完成。
范例:使用对象序列化进行文件上传
使用一个专门的上传数据封装类,将所有的数据内容、文件内容(以字节数组保存)进行封装,而后利用对象序列化的方式,将这个对象传送到服务器端。
范例:定义包装数据的序列化对象类 —— UploadFile.java
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; // 扩展名
// setter、getter
}
小结
使用Android可以与Socket程序进行通信;
上传文件可以采用序列化的方式简单完成,但是程序不具备通用性;
下一章内容
与Web Service进行通讯
文档评论(0)