网络传输过程:
1,找到对方ip
2,数据发送到指定端口(每个应用程序对应一个端口)
3,定义通信规则,即协议 TCP/IP
UDP
1,面向无连接,将数据、源、目的封装(像邮递东西)
2,数据报大小限制在64k内
3,不可靠协
4,速度快
TCP
1,面向连接,形成传输数据的通道(像打电话)
2,连接中进行大量数据量传输
3,可靠协议,三次握手,
4,必须建立连接,效率低
Socket
1、Socket就是为网络服务提供的一种机制。
2、通信两端都有Socket
3、网络通信其实就是Socket间的通信
4、数据在两个Socket之间通过IO传输
通过udp传输方式将一段数据发送出去
1,建立udpsocket服务
2,提供数据,并将数据封装在数据包中
3,通过socket服务的发送功能,将数据包发出去
4,关闭资源
定义一个应用程序,用于接收udp协议传输的数据并处理
1,定义一个udpsocket服务。通常监听一个端口
2,定义数据包,要存储接收到的字节数据,因为数据
3,通过socket服务的receive方法将接收到的数据存入已经定义好的额数据包中
4,通过数据包对像特有功能,将数据取出
5,关闭资源
import java.net.*; class UdpSend { public static void main(String[] args) throws Exception { //1,创建udp服务,通过DatagramSocket对象 DatagramSocket ds = new DatagramSocket(8888); //2,确定数据,并封装为数据包。 byte[] data = "udp test data".getBytes(); DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getByName("localhost"),10000); //3,通过socket服务的send()方法,将已有的数据包发送出去。 ds.send(dp); //4,关闭资源 ds.close(); } public static void sop(String str){ System.out.println(str); } } class UdpRece{ public static void main(String[] args) throws Exception { //1,创建udp socket,设置端口 DatagramSocket ds = new DatagramSocket(10000); //2,定义数据包,用于存储数据 byte[] data = new byte[1024]; DatagramPacket dp = new DatagramPacket(data,data.length); //3,通过服务的receive方法将收到的数据存入数据包中。 ds.receive(dp);//阻塞方法,等待接收数据 //4,使用数据包的方法取出其中对应的数据 String ip = dp.getAddress().getHostAddress(); String reData = new String(dp.getData(),0,dp.getLength()); int port = dp.getPort(); System.out.println(ip+"----"+reData+"-----"+port); //5,关闭资源 ds.close(); } }
-------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ---------------