netty实现 tcp和udp的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了netty实现 tcp和udp的区别相关的知识,希望对你有一定的参考价值。

参考技术A public void run(int port)throws Exception
2 EventLoopGroup group = new NioEventLoopGroup();
3 try
4 Bootstrap b = new Bootstrap();
5 b.group(group).channel(NioDatagramChannel.class)
6 .option(ChannelOption.SO_BROADCAST,true)
7 .handler(new UdpServerHandler());
8
9 b.bind(port).sync().channel().closeFuture().await();
10
11 finally
12 group.shutdownGracefully();
13
14

1 @Override
2 public void messageReceived(ChannelHandlerContext channelHandlerContext,
3 DatagramPacket datagramPacket) throws Exception
4 // 因为Netty对UDP进行了封装,所以接收到的是DatagramPacket对象。
5 String req = datagramPacket.content().toString(CharsetUtil.UTF_8);
6 System.out.println(req);
7
8 if("啪啪啪来拉!!!".equals(req))
9 channelHandlerContext.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(
10 "结果:",CharsetUtil.UTF_8),datagramPacket.sender()));
11
12 本回答被提问者采纳

TCP和UDP网络通讯的区别及实现方式

TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,在 OSI模型中,它完成第四层传输层所指定的功能。
UDP:是User Datagram Protocol的简称,用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
TCP和UDP传输就类似于我们的手机通电话和手机发短信,一种必需连通了,才能够通话,相对来说比较可靠,传输速度比较快,另一种可以在关机状态(无连接)发送信息,相对来说,可靠性比较差,传输速度较慢。具体的差别如下:
TCP协议面向连接,UDP协议面向非连接
TCP协议传输速度慢,UDP协议传输速度快
TCP协议保证数据顺序,UDP协议不保证
TCP协议保证数据正确性,UDP协议可能丢包
TCP协议对系统资源要求多,UDP协议要求少
不管是基于TCP还是基于UDP的网络通讯编程,都要区分服务器端和客户端,下面以TCP为例,实现客户端和服务器端通讯的实现步骤:
TCP服务器端的编写步骤:
1. 首先,你需要创建一个用于通讯的套接口,一般使用socket调用来实现。这等于你有了一个用于通讯的电话:)
2. 然后,你需要给你的套接口设定端口,相当于,你有了电话号码。这一步 一般通过设置网络套接口地址和调用bind函数来实现。
3. 调用listen函数使你的套接口成为一个监听套接字。 以上三个步骤是TCP服务器的常用步骤。
4. 调用accept函数来启动你的套接字,这时你的程序就可以等待客户端的连接了。
5. 处理客户端的连接请求。
6. 终止连接。
TCP编程的客户端一般步骤是:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置要连接的对方的IP地址和端口等属性;
5、连接服务器,用函数connect()(相当于拨号);
6、收发数据,用函数send()和recv(),或者read()和write()(相当于通话);
参考技术A udp是断点续传,tcp是直接连接。 参考技术B tcp和udp都是传输协议,只是两者是有区别的,TCP是一种在不可靠的网络环境中进行可靠的传输,一个文件被分成许多数据包从一台主机传输到另外一台主机,每接受一个数据包,两台主机之间都需要验证的,如果另外一台主机没有接收到该数据包,该主机会要求数据包发起的主机重发,一直到接收到为止(当然重发次数也是有次数限制的),这就是TCP协议的传输特点。
而udp则是在安全的网络下进行的不可靠传输,传输之前,双方主机之间建立起一条专用的传输通道,数据包一旦从发起电脑传输,之后就不再管对方收没收到的问题,一直把数据全部传输为止,传输完了发起主机会自动关闭数据传输通道。本回答被提问者和网友采纳

以上是关于netty实现 tcp和udp的区别的主要内容,如果未能解决你的问题,请参考以下文章

UDP和TCP有啥区别

tcp和udp的区别

UDP和TCP的区别

TCP和UDP网络通讯的区别及实现方式

tcp和udp区别

tcp和udp的区别