`

Android之网络开发详解

阅读更多

1、Socket通信模型如下:

    应用程序通过套接字可以进行通信,可以使用udp协议或者使用tcp协议,当客户端和服务器端的协议时相对应的,客户端使用tcp,那么服务器端使用tcp

2、UDP协议:把数据打包成数据包,然后直接发送对应的ip地址,速度快,但是不保证成功率,并且数据大小有限
    TCP协议:首先连接接收方,然后发送数据,保证成功率, 速度慢

3、 TCP协议在客户端和服务器端都可以通过InputStream和OutputStream 来收取和发送数据,而UDP通信不使用InputStream和OutputStream.

4、 UDP通信实现:

UDP使用DatagramSocket对象来实现

UDP的客户端代码实现如下:

       public static void main(String[] args) {
       try {
           //首先创建一个DatagramSocket对象
           DatagramSocket socket = new DatagramSocket(4567);
           //创建一个InetAddree
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
           String str = "hello";  //这是要传输的数据
           byte data [] = str.getBytes();  //把传输内容分解成字节
           //创建一个DatagramPacket对象,并指定要讲这个数据包发送到网络当中的哪个、
地址,以及端口号
           DatagramPacket packet = new

 DatagramPacket(data,data.length,serverAddress,4567);
           //调用socket对象的send方法,发送数据
           socket.send(packet);
       } catch (Exception e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
} 

 UDP的服务端代码实现如下:

//创建一个DatagramSocket对象,并指定监听的端口号
              DatagramSocket socket = new DatagramSocket(4567);
              byte data [] = new byte[1024];
              //创建一个空的DatagramPacket对象
               DatagramPacket packet = 

new DatagramPacket(data,data.length);
              //使用receive方法接收客户端所发送的数据,
              //如果客户端没有发送数据,该进程就停滞在这里
              socket.receive(packet);
              String result = new 

String(packet.getData(),packet.getOffset(),

packet.getLength());
        System.out.println("result--->" + result); 

 

5、  TCP通信的实现:
TCP使用Socket对象

TCP协议客户端实现:

//创建一个Socket对象,指定服务器端的IP地址和端口号
           Socket socket = new Socket("192.168.1.104",4567);
           //使用InputStream读取硬盘上的文件
           InputStream inputStream = new

 FileInputStream("f://file/words.txt");
           //从Socket当中得到OutputStream
           OutputStream outputStream = socket.getOutputStream();
           byte buffer [] = new byte[4*1024];
           int temp = 0 ;
           //将InputStream当中的数据取出,并写入到OutputStream当中
           while((temp = inputStream.read(buffer)) != -1){
              outputStream.write(buffer, 0, temp);
           }
           outputStream.flush();
       } 

 

TCP协议服务器端现实:

//声明一个ServerSocket对象
        ServerSocket serverSocket = null;
        try {
                //创建一个ServerSocket对象,并让这个Socket在4567端口监听
              serverSocket = new ServerSocket(4567);
        //调用ServerSocket的accept()方法,接受客户端所发送的请求,
//如果客户端没有发送数据,那么该线程就停滞不继续
              Socket socket = serverSocket.accept();
              //从Socket当中得到InputStream对象
              InputStream inputStream = socket.getInputStream();
              byte buffer [] = new byte[1024*4];
              int temp = 0;
              //从InputStream当中读取客户端所发送的数据
              while((temp = inputStream.read(buffer)) != -1){
                  System.out.println(new String(buffer,0,temp));
              }
           } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
           }
            serverSocket.close();


           } 

 

分享到:
评论

相关推荐

    android网络开发与应用实战详解源码

    《Android网络开发与应用实战详解》一书深入浅出地介绍了Android系统中如何实现网络通信,并提供了丰富的源码示例。这本书涵盖的内容广泛,包括基础的HTTP请求、数据解析、网络状态管理以及高级的WebSocket通信和...

    android应用开发详解

    《Android应用开发详解》这本书是为初学者量身打造的一本指南,旨在深入浅出地介绍Android应用开发的各个环节。Android开发是一个庞大且复杂的领域,涵盖了许多不同的技术和工具,但本书将带你逐步走进这个领域,从...

    《Android网络开发技术实战详解》 PDF

    《Android网络开发技术实战详解》以Android网络应用程序的开发为主题,从底层原理开始讲起,结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。《Android网络开发技术实战详解》的...

    《android系统应用开发详解》

    《Android系统应用开发详解》是一本专注于探讨Android操作系统应用程序开发的专业书籍。本书旨在为开发者提供深入理解Android系统应用开发的全面指南,涵盖了从基础到高级的各种主题,包括但不限于Android应用程序...

    Android应用开发详解.pdf (附源码)

    Android应用开发详解是一本Android应用开发书籍,既适合Android初学者,也适合具备了一定Android开发经验但需要开发案例的高级读者。 该书分为三个部分,共18章,由浅入深地详细介绍了Android的每个开发细节。 该书...

    Android应用开发详解pdf

    《Android应用开发详解》是一本深受开发者欢迎的入门书籍,主要针对想要学习和掌握Android应用程序开发的初学者。这本书深入浅出地介绍了Android平台的基本概念、开发环境搭建、UI设计、数据存储、网络通信以及...

    Android应用开发详解.pdf

    根据提供的标题“Android应用开发详解.pdf”以及描述“Android应用开发详解.pdf”,我们可以推断这份文档主要涵盖了关于Android平台上的应用程序开发的相关知识和技术。虽然提供的部分内容似乎并不包含具体的信息,...

    android网络开发技术实战详解电子书

    《Android网络开发技术实战详解》是一本专注于Android平台网络编程的专著,旨在帮助开发者深入理解和实践Android应用程序中的网络通信技术。这本书详细介绍了如何在Android应用中实现各种网络功能,如HTTP请求、数据...

    《Android应用开发详解》源码(全章节)

    《Android应用开发详解》这本书是Android开发者们的重要参考资料,它深入浅出地讲解了Android应用开发的各个环节。源码作为书中的实践部分,是理论知识的直观体现,可以帮助读者更好地理解和掌握Android编程技术。这...

    Android 典型技术模块开发详解 pdf

    《Android典型技术模块开发详解》这本书是为初入Android开发领域的工作者量身打造的指南,旨在帮助读者深入理解和掌握Android各个关键模块的开发技术。在本文中,我们将详细探讨书中可能涉及的重要知识点,并尽可能...

    android 项目开发详解代码

    "android 项目开发详解代码" 提供了一套完整的开发实例,旨在帮助学习者深入理解Android应用的生命周期、用户界面设计、数据存储、网络通信等核心概念。这份教材通过实际的代码示例,使得理论知识与实践相结合,有助...

    Android应用开发详解2010版

    《Android应用开发详解2010版》是针对早期Android平台的一份详尽教程,旨在帮助开发者深入理解和实践Android应用程序的开发。这份资料的核心内容涵盖了Android应用开发的基础知识、核心概念以及当时的最新技术。 ...

    android应用开发详解 郭宏志

    《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的书籍,它为读者提供了全面、详实的Android开发知识。通过这本书,开发者可以了解到Android平台的架构、核心组件以及如何构建功能丰富的应用...

    Android应用开发详解-附源码

    《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的专业书籍,它为初学者和有经验的开发者提供了丰富的知识和实践经验。这本书不仅涵盖了基础理论,还包含了实际项目的源码,使得读者能够通过...

    Android网络开发技术实战详解 完整版 pdf

    Android网络开发技术实战详解 [朱桂英编著][电子工业出版社][2012.08][584页]

    Android应用开发详解 及源码

    《Android应用开发详解》这本书是为那些对Android应用开发充满热情并有一定Java基础的学习者精心编写的。本书全面深入地探讨了Android应用开发的各种技术,旨在帮助读者掌握Android平台下的编程技能,从而能够构建出...

    Android应用开发详解与代码(清晰版)

    通过深入学习这些知识点,结合《Android应用开发详解与代码(清晰版)》中的实例和实践,新手开发者将能够逐步构建自己的Android应用,开启移动开发之旅。书中可能涵盖了这些概念的详细解释和实际操作步骤,对于渴望...

    Android网络开发详解

    ### Android网络开发详解 #### 一、概要 在Android平台上进行网络开发是移动应用开发中的重要组成部分。本文将深入探讨Android平台上的网络编程技术,包括标准Java接口、Apache HttpClient等,旨在帮助开发者掌握...

    Android应用开发详解

    "Android应用开发详解"的主题深入探讨了这个过程,提供了从基础到高级的全方位指导。此资源包括了2-18章的完整代码,这对于初学者和有经验的开发者来说都是宝贵的实践材料。 1. **Android SDK**: 开发Android应用的...

    Android应用开发详解教材源码(下册)

    《Android应用开发详解教材源码(下册)》是一本深度剖析Android应用开发的实践教程,包含8个单元,涵盖了30多个实例源码。这些实例旨在帮助读者深入理解Android平台上的应用程序设计与实现,从基础到高级,全方位地...

Global site tag (gtag.js) - Google Analytics