根据之前的经验,应用软件的网络通信无非就是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 socket 工具开发,android socket sdk,简单的android socket 代码
一个简单、轻量级的Android Socket框架。Android Socket Client Library.
Android socket通信聊天,客户端+服务端
Android Socket连接,包含心跳检测,断线重连,数据发送等等 博客地址:http://blog.csdn.net/yuzhiqiang_1993/article/details/78094909
android socket 即时通讯开发
Android开发基于socket聊天小程序,包含服务器、客户端、数据库文件以及测试的截图等等.
android socket 传文件,自动配置s端ip
手写简化版tcp长链接的socket实现,主要功能有断开重连,以及收发读取解码解析,适用于需要用到长链接的原生开发。
Android通过socket套接字实现网络连接,通过ip地址和ip端口实现访问服务器,从而实现客户端和服务器的连接,然后实现两者数据的互连
Android OkSocket是一款基于JavaNIO和传统Socket的一款Socket客户端整体解决方案.您可以使用它进行简单的基于Tcp协议的Socket通讯,当然,也可以进行大数据量复杂的Socket通讯,支持单工,双工通讯.
Android开发,Socket Client端和Socket Server端数据发送和接收
Android tcp socket通信封装及实例 1、模拟器上和电脑上开的sokit服务端通信测试通过 2、下载sokit当服务端
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
android_开发之socket编程_UDP和TCP通信实现
android socket通信开发,是学习socket开发的好资料。
android与c++通过socket通信 vc6.0开发环境 android与c++通过socket通信 vc6.0开发环境 android与c++通过socket通信 vc6.0开发环境
1.原创android的socket开发; 2.支持断开自动重连等功能; 3.广播、UDP和TCP/IP均已实现;
实现了基于socket的Android聊天开发 同时实现了本地的消息存储
使用socket在局域网内进行多文件传输文件源代码,包含socket、多线程、listview的基本应用 14号更新:多文件发送和接收