-------android培训、java培训、期待与您交流! ----------
在java中,它的网络编程也是很强大的一个功能。主要遵从两个协议:UDP和TCP/IP协议。
UDP的特点是:
1.它将数据及源和目的封装在数据报中,不需要建立连接
2.由于它是面向无连接的,这也就导致了它是一种不可靠协议
3.它传输的速度是很快的,但是有一个局限性:也就是它传输的单个数据报的大小不能够超过64K
TCP的特点是:
1.它要和服务器建立连接,形成传输数据的通道,是可靠地协议
2.在连接的过程中我们可以进行大数据量的传输,没有UDP的大小限制
3.由于他和服务器之间建立了通道连接,效率就没有UDP的高了
怎么样利用两种协议来完成通信数据传输呢?
对于UDP协议,我们首先要建立一个接收端,要有一个数据报用来接收数据
DatagramSocket ds = new DatagramSocket(10000); byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); ds.receive(dp); ds.close();
这样我们就有了接收端,能够把接收到的数据存放在数据包中取出来也很方便 。发送端的建立类似上面的步骤,只不过是调用发送的成员方法,切记哦。
而TCP呢它则需要建立一个ServerSocket和一个Socket对象分别用作服务端和客户端。客户端的建立就很简单了。
Socket s = new Socket("192.168.1.102",10000); OutputStream out = s.getOutputStream(); out.write("nishi shui".getBytes());
这样等服务端建立起来了就能够通信了。服务器的建立也很明了,ServerSocket ss; ss = new ServerSocket(10000); Socket s = ss.accept(); InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int len = in.read(buf); System.out.println(new String(buf,0,len));
这样我们就可以通过输出buf来知道客户端发送了什么内容过来了。知识点本身的难度不高,只要掌握了其中的运行原理,一切就都是那么的明了了特别提醒,服务端和接收端要先运行哦,不然会出现问题的额
。