您的位置:首页 > 移动开发 > Android开发

Android Socket 编程

2015-10-11 20:39 211 查看
Socket 编程:

1.what is Socket

网络通信的一种接口

统称:套接字

用于描述IP地址和端口,是一个通信链的句柄。

应用程序通过 “套接字” 向 网络发出请求或者应答网络请求。

Socket 分为两部分:服务端 socket,和客户端socket

(UDP 协议 是 一次性将数据打包,进行发送,不对数据传输过程中 数据的丢失 负责

UDP 发送的数据 是有限的,传输速度比较快



(TCP 协议 发数据时要求接收方 ,返回一个回应,传输速度比较慢)

2.Socket 基本通信模型

3.使用基于TCP协议的Socket

服务端代码如下:

1.声明一个ServerSocket 对象,并让这个Socket 在指定端口监听

ServerSocket serverSocket = new ServerSocket(端口号);

2.调用ServerSocket 的accept()方法,接受客户端发送的请求

Socket socket = serverSocket.accept();

3.从Socket 中得到 InputStream 对象

InputStream inputStream = socket.getInputStream();

4.从inputStream 中读取客户端发送的数据。

byte[] buffer= new byte[1024*4];

int temp=0;

while(temp=inputstream.read(buffer)!=-1){

system.out.println(new String(buffer,0,temp));

}

客户端代码如下:

1. 创建Socket 连接

Socket socket = new Socket("ip address",端口号);

2.写入数据到 客户端到outputStream中 通过socket 传输给 服务端。

//some codes simple。

4.使用基于UDP协议的Socket

UDP通信 方式:

服务端:

1.创建DatagramSocket 对象,并指定监听的端口号:

DatagramSocket socket = new DatagramSocket(端口号);

2. 创建空的 DatagramPacket 对象

byte data[]= new byte [1024];

DatagramPacket packet = new DatagramPacket(data,data.length);

3.使用receive方法 接收客户端所发送的数据,存放到DatagramSocket对象中。

socket.receive(packet);

客户端:

1.创建DatagramSocket 对象

DatagramSocket socket = new DatagramSocket(端口号);

2.创建一个InetAddress

InetAddress serverAddress= InetAddress.getByName(ip address);

3.创建 DatagramPacket 对象,并指定这个数据包点接收地址及端口号

4.调用Socket 对象的send 方法 ,发送数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: