ContentProvider
当一个应用调用另外一个应用的Provider时,要在创建ContentProvider的应用的provider注册中加入 权限 android:exported=”true”
TCP/UDP
TCP
服务端:绑定端口号 ,开始接受数据
ServerSocket serverSocket =new ServerSocket(port);
socket =serverSocket.accept();
客户端:
绑定服务端指定的端口号和地址,并发送数据
Socket client =new Socket(ip, port);
OutputStream os =client.getOutputStream();
os.write(new String("我是客户端!").getBytes());
UDP
服务端:更tcp思想一样,但方法不一样:
DatagramSocket server =new DatagramSocket(5050);
byte[] buf =new byte[1024];
DatagramPacket packet =new DatagramPacket(buf, buf.length);
System.out.println("服务端启动");
server.receive(packet);
客户端也是:
byte[] buf =new String("我是客户端").getBytes();
InetAddress address =InetAddress.getByName("127.0.0.1");
DatagramPacket packet =new DatagramPacket(buf, buf.length, address,5050);//绑定端口号,IP地址
DatagramSocket client =new DatagramSocket();
client.send(packet);//发送数据
总结:
1.发送数据类型不一样,TCP用InputStream、OutputStream,UDP用DatagramPacket。所以TCP面向字节流,把是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
2.发送方式不一样:TCP accept/write,UDP receive/send。
3.TCP需要确定连接建立后才能发送数据,UDP不用。例:当服务器未启动时,TCP启动客户端会报错,不发送数据,而UDP不会,数据照样发送。所以TCP是可靠的数据传输,UDP不是。
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节