两个重要的通信协议的特点:
UDP:
1.面向无连接
2.每次传输数据封装成数据包,且限定最大为64K
3.是不可靠协议,如未建立链接传输的数据丢失
4.传输速度快
TCP:
1.传输数据须建立连接,形成传输通道
2.在通道中进行大数据量的传输
3.通过三次握手建立连接,是可靠的传输协议
4.相比UDP效率稍低
DatagramSocket类:用于创建收,发数据报的socket对象
构造方法:DatagramSocketds = new DatagramSocket(8888/*指定端口号*/);
它既有接受数据报的方法也有发送数据报的方法
发送:public voidsend(DatagramPacketp);
接收:public voidreceive (DatagramPacketp);
DatagramPacket类,用于封装数据
用于发送数据:DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);
第一个参数用于指定存放数据报的字节数组,第二个参数指定数据报的数据长度,第三个参数指定数据报要发送到的目标地址,第四个指定目标端口号。
用于接收数据:DatagramPacket dp = new DatagramPacket(buf,buf.length);
第一个参数指定存放数据报的字节数组,第二个参数指定数据报长度
取得数据后可以用DatagramPacket的方法获取数据报里的数据,常用的方法有:
getAddress()//得到地址
getPort()//得到端口
getData()//得到数据
getLength()//得到数据长度
Socket类:创建基于TCP协议的客户端服务
Socket s = newSocket("192.168.1.254",10003); //创建客户端的socket服务。指定目的主机和端口
Socket中封装了流,用getOutputStream()和getInputStream()获取流用于数据通讯。
OutputStream out = s.getOutputStream();
InputStream out = s.getInputStream();
SeverSocket类:创建服务端为客户端服务服务
ServerSocket ss = new ServerSocket(10003);
服务端通讯需要先获取客户端的流,用客户端的流于客户端通讯
Socket s = ss.accept();//通过accept方法获取连接过来的客户端对象
//获取客户端的流
OutputStream out = s.getOutputStream();
InputStream out = s.getInputStream();
最后不要忘了需要关闭客户端资源
------- android培训、 java培训、期待与您交流! ---------- 详细请查看: http://edu.csdn.net/heima/