根据之前的经验,应用软件的网络通信无非就是Socket和HTTP,其中Socket又可以用TCP和UDP,HTTP的话就衍生出很多方式,基础的HTTP GET和POST请求,然后就是WebService的SOAP。
在这些方式中,Socket当然是最基础的。因此先从Socket开始。
服务端就不需要过多的说明了,无论采用什么语言什么平台都可以,只要遵循基本的Socket监听模式就行。
实际上Android的Socket开发就是Java的Socket开发,因此学习过Java的开发人员也许觉得并没有什么难度,不过依然有一些不同于PC开发的地方需要注意
首先是说说TCP开发
JAVA里的TCP开发感觉比C#里简单多了,实现方法几句话就能完成。
01 |
Socket socket = new Socket( "192.168.3.119" , 7628 );
|
03 |
OutputStream ops = socket.getOutputStream();
|
05 |
byte [] bytes = b.getBytes();
|
15 |
InputStream ips = socket.getInputStream();
|
17 |
byte [] bytes2 = new byte [ 20 ];
|
21 |
String str = new String(bytes2);
|
服务端代码就不多说明了,只要实现了Socket监听和接收,发送就行。这样Android上Tcp的Socket就完成了,很简单。
接下来是UDP的,理论上来说,UDP的实现应该更简单,不过,由于使用模拟器来调试的关系,出了一点小问题,郁闷了很久,另外,Java用UDP Socket对应使用的类是DatagramSocket,与C#不同,c#是在创建Socket的时候制定参数来制定协议类型,先看代码。
01 |
DatagramSocket dgs = new DatagramSocket();
|
03 |
InetAddress inet = InetAddress.getByName( "192.168.3.119" );
|
05 |
DatagramPacket dgp = new DatagramPacket( "test2" .getBytes(), "test2" .getBytes().length,inet, 7628 );
|
12 |
DatagramSocket dgs2 = new DatagramSocket( 9997 );
|
14 |
DatagramPacket dgp2 = new DatagramPacket( new byte [ 20 ], 20 );
|
17 |
String str = new String(dgp2.getData());
|
需要特别注意的地方,在不做端口映射的情况下,UDP可能无法接受到服务器端发送过来的数据,原因是使用eclipse开发的时候,调试程序是用的模拟环境,模拟环境下,接收数据是要做端口映射的,因为模拟环境下,没有自己真实的IP地址和端口,模拟器是使用5554来运行的,发送数据到PC没问题,但是 PC发送到模拟器的时候,需要把本机的端口映射到模拟器上,真机环境不需要,具体操作方式如下
1、运行模拟器
2、打开DOS命令行窗口
执行:telnet localhost 5554
5554是模拟器的端口,执行之后会进入android console
3、 在console下执行:
redir add udp :8000:9000
其中,第一个端口号是PC的端口,第二个端口号是模拟器端口。
执行此命令之后,会把PC 8000端口接收到的数据转到模拟器的9000端口,模拟器就能从9000端口接收UDP数据包了
另外,要实现Socket,必须在 AndroidManifest.xml 中加入权限如下
1 |
< uses-permission android:name = "android.permission.INTERNET" />
|
分享到:
相关推荐
采用Android SOCKET开发的网络摄像头程序,接收网络传输过来的字节图片信息然后采用sufaceView实时显示
总结来说,`Android-Lemon`作为一个轻量级的Android Socket框架,大大简化了开发者在Android平台上进行Socket通信的工作,提高了开发效率。其易用性和灵活性使得它成为Android网络编程中值得推荐的工具。通过理解其...
一、Android Socket开发 Socket是网络通信中的基础组件,它允许两个或更多应用程序通过网络进行通信。在Android中,使用Socket可以实现实时的数据传输,比如聊天应用。开发Android Socket应用需要理解以下几个关键...
在Android平台上进行网络通信时,Socket通信是一种常见且重要的方式,...理解并熟练掌握Socket通信,对于开发实时交互的应用,如聊天、游戏等,至关重要。通过实践和不断优化,你可以构建出高效、稳定的网络通信系统。
本篇文章将深入探讨如何在Android中开发Socket SDK,以及涉及的一些关键知识点。 首先,我们需要理解Socket的基本概念。Socket是网络编程中的一个接口,它提供了进程间的网络通信能力,允许两台计算机通过TCP/IP...
在Android开发中,Socket通信是实现设备间网络通信的一种常见方式。Socket分为客户端(Socket Client)和服务器端(Socket Server),它们共同构成了基于TCP/IP协议的通信模型。本篇文章将详细探讨Android环境下如何...
在Android平台上,Socket编程是应用程序之间进行网络通信的重要方式,主要分为TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)两种。本篇文章将重点探讨基于Android的UDP Socket编程,包括其...
Android Socket通信是Android应用开发中的一个重要部分,它允许应用程序通过网络与其他设备进行数据传输,实现客户端与服务器之间的实时通信。在这个场景中,"Android socket即时通信"涉及到在Android设备上创建...
在Android平台上,Socket服务端的实现是通过Java的Socket编程接口来完成的,因为Android是基于Java的。本文将深入探讨如何在Android设备上构建一个Socket服务器,以便它能够接收客户端的消息,同时支持向特定客户端...
在Android平台上,Socket通信是一种常见的数据传输方式,尤其在设备间需要进行文件传输时。本文将深入探讨如何使用Android Socket实现文件的传输,并特别关注如何自动配置Server端(S端)的IP地址。 首先,理解...
在Android开发中,Socket长连接是一种常见的通信方式,特别是在实时性要求高的应用中,如即时通讯、在线游戏等。为了保持连接的稳定性和检测网络状况,通常会采用心跳检测机制。下面将详细介绍Android中实现Socket长...
在Android平台上,Socket编程是一种常见的通信方式,常用于设备间...通过学习和调试这个demo,你可以掌握如何在Android应用中实现TCP/IP通信,这对于开发需要设备间数据交换的应用(如多人游戏、文件共享等)非常有用。
在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在构建网络应用时。本教程将深入探讨Android Socket编程的基本概念、客户端与服务器端的实现以及相关源码解析。 一、Socket基本概念 Socket,也被...
在Android系统中,Socket通信是应用层与传输层之间的接口,允许应用程序进行网络通信。从Android 2.3(Gingerbread)版本开始,为了更好地管理和优化...理解并掌握这些知识点对于开发高质量的Android网络应用至关重要。
Android Socket连接,包含心跳检测,断线重连,数据发送等等 博客地址:http://blog.csdn.net/yuzhiqiang_1993/article/details/78094909
在Android应用开发中,Socket通信是实现设备间数据传输的重要方式,尤其在需要实时性、低延迟的场景中,如游戏、聊天应用等。EasySocket是一个专为Android设计的轻量级Socket框架,它简化了原生Socket编程的复杂性,...
在实际开发中,我们通常会封装一个Socket通信类,提供发送和接收数据的方法,以便在应用的其他部分轻松使用。此外,考虑到网络连接可能不稳定,可以使用心跳机制来检测连接状态,及时重连。 对于安全性,如果你的...
总的来说,这个项目涵盖了Android应用开发中的多个关键知识点,如Socket通信、多线程、数据库操作和UI设计。开发者通过实现这个项目,不仅掌握了网络编程的基本原理,还锻炼了在Android平台上构建实际应用的能力。
在安卓(Android)平台上,开发过程中常常需要处理大文件的传输问题,比如用户...在压缩包中的`AndroidSocket`文件可能包含了详细的源码示例,开发者可以通过学习和理解这些代码,更好地掌握大文件断点上传的实现方法。
总之,Android Socket调试助手是开发过程中不可或缺的工具,通过学习和理解其源码,开发者可以更深入地了解Socket编程,提高网络通信的稳定性和效率。在实际项目中,可以根据自身需求对其进行定制,使其成为符合项目...