黑马程序员_Socket通信

来源:互联网 发布:软件架构师真题 编辑:程序博客网 时间:2024/05/01 20:23

-------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来知道客户端发送了什么内容过来了。

         知识点本身的难度不高,只要掌握了其中的运行原理,一切就都是那么的明了了特别提醒,服务端和接收端要先运行哦,不然会出现问题的额尴尬

 

原创粉丝点击