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系统中如何实现网络通信,并提供了丰富的源码示例。这本书涵盖的内容广泛,包括基础的HTTP请求、数据解析、网络状态管理以及高级的WebSocket通信和...
《Android应用开发详解》这本书是为初学者量身打造的一本指南,旨在深入浅出地介绍Android应用开发的各个环节。Android开发是一个庞大且复杂的领域,涵盖了许多不同的技术和工具,但本书将带你逐步走进这个领域,从...
《Android网络开发技术实战详解》以Android网络应用程序的开发为主题,从底层原理开始讲起,结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。《Android网络开发技术实战详解》的...
《Android系统应用开发详解》是一本专注于探讨Android操作系统应用程序开发的专业书籍。本书旨在为开发者提供深入理解Android系统应用开发的全面指南,涵盖了从基础到高级的各种主题,包括但不限于Android应用程序...
Android应用开发详解是一本Android应用开发书籍,既适合Android初学者,也适合具备了一定Android开发经验但需要开发案例的高级读者。 该书分为三个部分,共18章,由浅入深地详细介绍了Android的每个开发细节。 该书...
《Android应用开发详解》是一本深受开发者欢迎的入门书籍,主要针对想要学习和掌握Android应用程序开发的初学者。这本书深入浅出地介绍了Android平台的基本概念、开发环境搭建、UI设计、数据存储、网络通信以及...
根据提供的标题“Android应用开发详解.pdf”以及描述“Android应用开发详解.pdf”,我们可以推断这份文档主要涵盖了关于Android平台上的应用程序开发的相关知识和技术。虽然提供的部分内容似乎并不包含具体的信息,...
《Android网络开发技术实战详解》是一本专注于Android平台网络编程的专著,旨在帮助开发者深入理解和实践Android应用程序中的网络通信技术。这本书详细介绍了如何在Android应用中实现各种网络功能,如HTTP请求、数据...
《Android应用开发详解》这本书是Android开发者们的重要参考资料,它深入浅出地讲解了Android应用开发的各个环节。源码作为书中的实践部分,是理论知识的直观体现,可以帮助读者更好地理解和掌握Android编程技术。这...
《Android典型技术模块开发详解》这本书是为初入Android开发领域的工作者量身打造的指南,旨在帮助读者深入理解和掌握Android各个关键模块的开发技术。在本文中,我们将详细探讨书中可能涉及的重要知识点,并尽可能...
"android 项目开发详解代码" 提供了一套完整的开发实例,旨在帮助学习者深入理解Android应用的生命周期、用户界面设计、数据存储、网络通信等核心概念。这份教材通过实际的代码示例,使得理论知识与实践相结合,有助...
《Android应用开发详解2010版》是针对早期Android平台的一份详尽教程,旨在帮助开发者深入理解和实践Android应用程序的开发。这份资料的核心内容涵盖了Android应用开发的基础知识、核心概念以及当时的最新技术。 ...
《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的书籍,它为读者提供了全面、详实的Android开发知识。通过这本书,开发者可以了解到Android平台的架构、核心组件以及如何构建功能丰富的应用...
《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的专业书籍,它为初学者和有经验的开发者提供了丰富的知识和实践经验。这本书不仅涵盖了基础理论,还包含了实际项目的源码,使得读者能够通过...
Android网络开发技术实战详解 [朱桂英编著][电子工业出版社][2012.08][584页]
《Android应用开发详解》这本书是为那些对Android应用开发充满热情并有一定Java基础的学习者精心编写的。本书全面深入地探讨了Android应用开发的各种技术,旨在帮助读者掌握Android平台下的编程技能,从而能够构建出...
通过深入学习这些知识点,结合《Android应用开发详解与代码(清晰版)》中的实例和实践,新手开发者将能够逐步构建自己的Android应用,开启移动开发之旅。书中可能涵盖了这些概念的详细解释和实际操作步骤,对于渴望...
### Android网络开发详解 #### 一、概要 在Android平台上进行网络开发是移动应用开发中的重要组成部分。本文将深入探讨Android平台上的网络编程技术,包括标准Java接口、Apache HttpClient等,旨在帮助开发者掌握...
"Android应用开发详解"的主题深入探讨了这个过程,提供了从基础到高级的全方位指导。此资源包括了2-18章的完整代码,这对于初学者和有经验的开发者来说都是宝贵的实践材料。 1. **Android SDK**: 开发Android应用的...
《Android应用开发详解教材源码(下册)》是一本深度剖析Android应用开发的实践教程,包含8个单元,涵盖了30多个实例源码。这些实例旨在帮助读者深入理解Android平台上的应用程序设计与实现,从基础到高级,全方位地...