android网络编程 基于socket 的通信

android网络编程 基于socket 的通信

ID:6070615

大小:131.00 KB

页数:10页

时间:2018-01-02

android网络编程 基于socket 的通信_第1页
android网络编程 基于socket 的通信_第2页
android网络编程 基于socket 的通信_第3页
android网络编程 基于socket 的通信_第4页
android网络编程 基于socket 的通信_第5页
资源描述:

《android网络编程 基于socket 的通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Android网络编程实践之旅(二):基于Socket的网络通信       Socket(套接字)是一种通信机制,可以实现单机或跨网络进行通信,其创建需要明确的区分C(客户端)/S(服务器端),支持多个客户端连接到同一个服务器。有两种传输模式:1)、面向连接的传输:基于TCP协议,可靠性高,但效率低;2)、面向无连接的传输:基于UDP协议,可靠性低,但效率高;       Android中,直接采用Socket通信应该是我们遇到的最低级的网络运用。尽管已经作了很大程度的抽象,但是纯粹的Socket通信,仍然给开发者留下

2、很多细节需要处理,尤其在服务器端,开发者需要处理多线程以及数据缓冲等的设计问题。相对而言,处于更高抽象层的HTTP等,已经对Socket通信中需要处理的技术细节进行了很好的封装,开发者无须关心,因此,HTTP在网络开发中通常具有决定性的优势。       Android在其核心库的java包中,提供了用于客户端的Socketclass和用于服务器端的ServerSocketclass,分别位于$SOURCE/libcore/luni/src/main/java/java/net/Socket.java和$SOURCE/l

3、ibcore/luni/src/main/java/java/net/ServerSocket.java文件中。分析两个class的源码,可以看出封装考虑的很全面,只构造方法一向每个class都考虑了很多种使用情况。由于本人只是初学者,很多理解的不深入,这里只抛砖引玉的对两个class的构造方法分别介绍一种,就是我下面的程序中用到的:Socket(StringdstName,intdstPort):创建一个以流的方式(基于TCP协议)连接到目标机(这里可以理解为服务器)的客户端Socket;dstName是目标机的IP地

4、址,dstPort是要连接的目标机的端 口号。这里要注意对端口的理解,它不能理解为物理上的一个接口,而是对计算机中一块特殊内存区域的形象表述。ServerSocket(intaport):创建一个绑定到本机指定端口的服务端Socket;aport就是指定的本机端口。与上述客户端Socket对应,通过TCP连接时,ServerSocket创建后需要在aport端口上进行监听,等待客户端的连接。       上面所写都是些背景知识,下面对本人的编程实践进行详细说明。1、功能描述    1)、简单的基于Socket的数据通信;

5、    2)、采用TCP方式连接;    3)、采用C/S结构,但服务端只支持一个连接;    4)、客户端能够向服务端发送数据,并显示服务端的返回信息;    5)、服务端能够接收客户端的数据,并将收到的数据以特定的方式返回给客户端;2、程序实现思路   1)、服务端:设计为在后台执行的service,用一个独立的线程来处理客户端的连接请求、数据接收和返回。为了启动该service,编写个简单的Activity。   2)、客户端:设计为一个Activity,界面由三部分组成:显示服务端返回信息的文本区域(一个文本框)

6、;进行数据输入的编辑区域(一个编辑框);以及触发连接请求并执行数据发送的触发区域(一个按钮)。3、服务端源程序   1)、Activity文件SocketServerDemo.javaviewplaincopytoclipboardprint?1.package com.android.sample.SocketServerDemo;  2.  3.import android.app.Activity;  4.import android.content.Intent;  5.import android.os.Bun

7、dle;  6.  7.public class SocketServerDemo extends Activity{  8.  9.    @Override  10.    protected void onCreate(Bundle savedInstanceState) {  11.        // TODO Auto-generated method stub  12.        super.onCreate(savedInstanceState);  13.          1.        se

8、tContentView(R.layout.main);  2.          3.        System.out.println("begin start service");   4.        this.startService(new Intent(this, SocketService.cla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。