代码改变世界

DCP和TCP

2012-03-19 17:34  党飞  阅读(1502)  评论(0)    收藏  举报

---------------------- android培训java培训、期待与您交流! ----------------------

DCP和TCP是实现网络传输应用最广泛的两个协议,让我们分别看看他们的优缺点:

UDP:

1.面向无连接

2.数据包大小限制在64k

3.不可靠

4.速度快

TCP:

1.需建立连接

2.适用于大量数据传输

3.三次握手,可靠协议

4.效率低

根据tcp和udp的这些他点,他们在不同的方面都有广泛的应用,如udp用在qq,视频会议等

而tcp用在文件上传下载。

下面看看,udp及tcp的实现方法。

udp:

java为我们提供了DatagramSocket和DatagramPacket来实现udp传输

看一个例子:

我们来创建一个接收端:

public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   DatagramSocket ds = new DatagramSocket(1001);//创建udp接收socket,指定端口
   
   byte[] buf = new byte[1024];                              //创建字符串缓冲区
   DatagramPacket dp = new DatagramPacket(buf,buf.length);//创建数据包以便接收数据
   
   ds.receive(dp);                                                 //此方法为线程线程阻塞方法,接收数据
   String str = new String(dp.getData(),0,dp.getLength());
   System.out.println(str);
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

再来创建一个发送端:

public static void main(String[] args) {
    try {
   DatagramSocket ds = new DatagramSocket();//upd发送端socket
   byte[] buf = "dangfei".getBytes();
   DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1001);//创建发送数据包,指定主机,端口号。
   ds.send(dp);
   ds.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

OK,到这里我们就完成了udp的简单传输,tcp的实现在下节说。

---------------------- android培训java培训、期待与您交流! ----------------------