---------------------- android培训、java培训、期待与您交流! ----------------------
传输协议:UDP和TCP是网络上的传输协议
UDP:
l 将数据及源和目的封装成数据包中,不需要建立连接
l 每个数据抱的大小限制在64K内
l 因为无连接,所以是不可靠的传输协议
l 由于不需要事先建立连接,传输速度快
TCP:
l 建立连接,形成传输数据的通道
l 在连接中进行大量数据的传输
l 通过三次握手完成连接,是可靠连接。
l 不需要建立连接,效率会降低。
网络编程:
IP地址的获取:
import java.net.*; class IPDemo { public static void main(String[] args) throws Exception { InetAddress ip1 = InetAddress.getLocalHost();//返回本地主机名和IP地址 System.out.println(ip1); InetAddress ip2 = InetAddress.getByName("www.baidu.com"); System.out.println(ip2); } }
Socket :
Socket就是为网络服务提供的一种机制。
通信的两端都有socket
数据在两个Socket之间通过IO传输。
UDP程序示例
import java.net.*; /*通过传输方式,将一段文字数据发送出去(发送端) 步骤:1,建立UDPSocket 服务,监听一个端口, 2,提供数据,并经数据封装到数据包中 3,通过Socket服务,将数据发送出去。 4,关闭资源。 */ class UDPSend { public static void main(String[] args) throws Exception { //创建udp服务。通过DatagramSocket对象 DatagramSocket ds = new DatagramSocket(9999);//指定端口号发送数据,若不指定系统随机分配。 //确定数据,并封装成数据包 DatagramPacket(byte[] buf,int length,SocketAddress address,int port) byte[] buf = "udp data packet send ....".getBytes(); DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("localhost"),8888); // 发送数据 ds.send(dp); //关闭资源 ds.close(); } }
/*定义一个应用程序,用于接受UDP协议传输的数据(接收端) 思路: 1,定义udpsocket服务,监听一个端口。 2,定义一个数据包,因为要存储接受到的字节数据,和其他不同的信息。 3, 通过socket服务的receive方法接受到的数据存放到定义的数据包 4,通过数据包对象,将这些不同的数据取出。打印在控制台 5,关闭资源 */ class UDPReceive { public static void main(String[] args) throws Exception{ DatagramSocket ds = new DatagramSocket(8888);// 创建数据报套接字并将其绑定到本地主机上的指定端口。 while(true) { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); ds.receive(dp); String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength());//将获取的字节数组数据封装为字符串 int port = dp.getPort();// System.out.println(ip+"-->"+data+"-->"+port); } //ds.close(); } }
---------------------- android培训、java培训、期待与您交流! ----------------------