您的位置:首页 > 理论基础 > 计算机网络

UDP和TCP的学习笔记

2013-10-19 21:14 218 查看
这几天了解传输层协议, 分享一下,夹杂个人观点。。希望对您有帮助。。

一: Udp传输:

1.它是不可靠传输,涉及到两个类,DatagramSocket和DatagramPacket(DatagramSocket是建立套接字(端口),
  DatagramPacket是将数据进行打包的 打包的需要的数据类型是byte,也就是以字节的形式进行打包);
2.udp 不需要传输建立连接,只是单纯的向端口发信息而已,如果接收端口开着,那个就就收端口就可以接到信息,
如果端口没有开,那么这段信息就会丢失,也就是所说的不可靠传输

一般建立的过程(udp没有客户端和服务端之分)

发送过程:
1.建立一个端口(也就是实例化一个DatagramSocket对象,端口可以指定,也可以不指定)
2.将数据进行打包处理(将DatagramPacket实例化,将信息打包)
3.通过DatagramSocket的send(DatagramPacket dp)方法将数据发送出去。
4.关闭相应的资源
接收过程:
1.2.4步和发送过程相同(数据打包的时候有点细节不同,具体参考java API)
3.通过DatagramSocket的Receive(DatagramPacket dp)方法获取数据,进行处理.

二: Tcp是可靠地传输;
1.它是可靠地传输,涉及到两个类,Socket和ServerSocket(Socket表示的是客户端的,ServerSocket表示的是服务器)
2.tcp传输面向连接,可以传输大数据量,当然Udp也可以(但是不安全,还要打包(64K))

一般过程:
  客户端:

1.建立客户端口(实例化一个Socket对象)、
2.获取输入流和输出流(输入流:接收服务端返回的信息,输出流:向服务端发送信息)
3.具体的读写动作
4.关资源

  服务端:
1.建立服务端的具体监听对象(ServerSocket(int port))
2.通过ServerSocket类的accept方法使得客户端被监听,并且是的客户端与服务端建立连接,同时返回客户端的Socket对象
3.获取Socket对象的输入流和输出流(输入流:获取客户端发来的信息,输出流: 将服务端处理后的信息返回给客户端)

注:服务端一般是不会关闭资源的,因为一个服务器不仅仅是给一个客户服务的,当客户端关闭资源时相应的链接也就中断,
服务端这边也会自动断开。

三. 区别:
1.tcp是需要建立链接;但是udp不需要建立链接,
2.tcp是可靠地传输,但是效率较低;udp虽然是不可靠传输,但是效率高
3.tcp一般用来传输大数据量的(建立连接); 而udp是以数据报包的形式传送的(数据报包最大为64k),
    也就是说传输的基本单位是数据报包(和数据链路层的传输基本单位是帧一个道理)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: