1. ?? ??? UDP ?? ? ????
?????? ??? ?? ???? ???? ??? ?? ?????. ???? ?? ??? ?? ???? ?? ?? ??? ?? ??? ???? ?? ?? ??? ?? ????? UDP(??? ????? ????)? ?? ?? ????? ?????. TCP(?? ?? ????)? ???? ???? ?? ? ???? ??? ??? ? UDP? ?? ?? ??? ????? ????? ?? ?? ??? ? ???? ?? ?????. ?? ?? ?? ?? ?? ????? ??? ?? ?? ????? ?? ?????.
??? ??? ??? ?? ???? ?????? ?????? Netty? ?? ??? ??? ??? ???? ???? ???? ? ?? ?????. ??? Netty? ?? ??? ???? ?? TCP ?? ??? ?? ??? API? ??? ????? ? ????. ?? TCP? "??" ??? ??? ??? ?? UDP ??? ????? ? ? ?? ?????.
2. Netty? ?? ???? UDP ??? ?? ??? ??? ?????.
Netty? ?? ??? TCP? ???? ??? UDP ??? ???? ?????. Netty? UDP? ???? ??? ???? ??? ??? ?? ?????. UDP?? "??"??? ??? ??? ? ??? ??? ???? ??????.
2.1 Netty? UDP ?? ????
Netty? NioDatagramChannel? ?? UDP ?????? ?????. TCP? SocketChannel? ?? DatagramChannel? ?? ??? ???? ????. UDP ?????? ???? Netty? ?? ?? ??? ??? ?? ??? SocketAddress? ??? DatagramPacket ??? ??????.
?? ?? ?:
import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelHandlerContext; io.netty.channel.ChannelInitializer ????; import io.netty.channel.SimpleChannelInboundHandler; io.netty.channel.nio.NioEventLoopGroup ????; io.netty.channel.socket.DatagramPacket ????; io.netty.channel.socket.nio.NioDatagramChannel ????; import io.netty.util.CharsetUtil; import java.net.InetSocketAddress; ?? ??? UdpGameServer { ?? ?? int ??; ?? UdpGameServer(int ??) { this.port = ??; } public void run()? ??? ??????. NioEventLoopGroup ?? = new NioEventLoopGroup(); ???? { ????? b = new Bootstrap(); b.??(??) .channel(NioDatagramChannel.class) //NioDatagramChannel? ???? UDP ?? .handler(new ChannelInitializer<niodatagramchannel>() { @?? public void initChannel(NioDatagramChannel ch)? ??? ??????. { ch.pipeline().addLast(new UdpGameServerHandler()); } }); System.out.println("UDP ?? ??? ?? " ???? ???????.); b.bind(port).sync().channel().closeFuture().sync(); // ?? ???} finally { group.shutdownGraceously(); } } public static void main(String[] args)?? ??? ?????. ??? UdpGameServer(9999).run(); } } UdpGameServerHandler ???? SimpleChannelInboundHandler<datagrampacket> {? ?????. @?? protected void ChannelRead0(ChannelHandlerContext ctx, DatagramPacket msg)?? ?? ?? { // ?? ?? ?? ???? InetSocketAddress sender = msg.sender(); // ??? ??? ???? String receivedData = msg.content().toString(CharsetUtil.UTF_8); System.out.printf("%s??? ???: %s%n", sender, receivedData); // ?? ??? ?? String response = "?? ???: " receivedData; // ????? ??? ?? ????. ctx.writeAndFlush(new DatagramPacket( ctx.alloc().buffer().writeBytes(response.getBytes(CharsetUtil.UTF_8)), ??? ??)); } @?? public void ?? Caught(ChannelHandlerContext ctx, Throwable ??) { cause.printStackTrace(); ctx.close(); } }</datagrampacket></niodatagramchannel>
2.2 ????? ?? ?? ? ?? ??
TCP?? ChannelHandlerContext? ????? ????? ??? ????? ?? ?? ?????? ?? ???? ??? ? ????. ??? UDP? ??? ??? ??? ? DatagramPacket?? ?? ??? SocketAddress? ?????. ?? "??"? ???? ??? ? ?????? ???? ?? ?? ?? ?????? ???? ???? ???? ?? ?????.
???? UUID? ?? ?? ??? ???? ?? ??? ?????? ??????. ?????? ???? ?? ? ?????? ??? UUID? ??? ? ????. ??? DatagramPacket? ??? ? ????? UUID? ?? ???? ?? DatagramPacket.sender()(?, ?????? IP ?? ? ??)? ??? ? ????. ??? Map
?? ??:
- NAT ??: ?? ?????? ??? ?? ?? ?? NAT(???? ?? ??)? ?? ?????? SocketAddress? ??? ? ????. ?? ????? ??? ?? SocketAddress? ?? ???? ?? ???? ????. P2P ?? ??? ????? ????? ?? NAT ?? ??(?: ? ??)? ?????.
- ?? ?? ??: UDP?? ??? ???? ??? ?? ?? ?? ?? ????? ???? ??? ????? ??? ????? ???? ???.
3. ?? ?????? ??? ????
Netty? ?? ???? UDP ??? ???? ??? ???? ?? ?? ??? ?????, ?? ?? ??? ???? ??(?: ??, ?? ?? ???, ? ?? ?)? ??? ? ?? ???? ?????. ??? ???? ?? ?? ??????? Netty? ???? ??? ?? ??? ?????? ???? ?? ????. ??? ?????? Netty? ?? ???? ????? ? ?? ??? API? ?? ??? ?? ??? ?????.
3.1 ? ??? ?????? ??????
- ?? ???: ?????? ? ?? ??? ???? ???? ???? Netty? ?? ? EventLoopGroup? ?? ?? ??? ?? ??? ??? ????.
- ?? ??: ????? ?? ??? ??? ?? ? ??, RESTful API ??, ??? ??? ??, ?????? ?? ? ?? ?? ???? ??? ?????.
- ??? ????? ??: ?? ?? ?????? ?? ??? ? ??? ??? ???? ? ? ??? ??? ?? ??? ?? ??? ?????.
- ???? ?? ? ???: ??? ????? ??? ?? ?????? ?? ??? ?? ???? ? ?? ?? ? ????.
3.2 Netty ??? ?? ?? ?????
-
?? X:
- ??: ??? ?? ? ??? I/O? ???? ?? ??? ?????? ??? ??????? ? ??? ??????? ???? ? ?? ?????. ????? Netty? ????? ?????. Vert.X? ??? ??? ???? ????? UDP ??? ??? ??? ?????. DatagramSocket API? Netty? ?? ???? ??? ?????.
- ?? ??? ????: ?? ?? ??? ?? ?? ?? ???? ???? ???? ?? ?? ??? ??????.
-
?????/???:
- ??: ???? ???? ??? ?? ??? ??? ?? ?? ??????? ????????. AOT(Ahead-Of-Time) ??? ? ??? ?? ???? ?? ?? ?? ??? ??? ?? ??? ?????. ?? HTTP/TCP ???? ????? ?? ??? Netty? ???? ?? ?????? ????? ???? UDP? ??? ? ????.
- ?? ??? ????: ??? ??? ??? ???? ??? ??????? ???? ?? JVM ?????? ???? ???? ???? ????? ????.
-
gRPC ??:
- ??: ?? ?? ??? RPC(?? ???? ??) ??? ???? ?? gRPC? ??? ?????. HTTP/2 ????? ???? ?? ??? ????? ???? ??? ?? ? ??? ???? ??? ????? ?? ??? ?????. gRPC? ?? ??? ????? Netty? ?? ???? ?????.
- ?? ??? ????: ???? ??? ??? ?????, ?? ? ??? ???? ??? ??? ???? ??? ?? ?? ?? ??? ?? ?? ???(?: ??? ?? ?? ???? ?? ?? ???, ?? ??? ?).
4. “?? ???? ??? ????”?? ?? ??: TCP? ?? ????
???? ?? ??, ?? ????? ?? ??? ??? ?????? ???? ?? ???? ???? ???? ?? ?? ????? ??? ?? ??? ??? ?? ????. ??? ??? "???? ??? ???? ??? ??????."
4.1 TCP? ??
- ?? ?? ???: TCP? ????? ?? ?? ?? ??? ??? ???? ???? ?? ??, ??? ? ?????? ?? ??? ??? ??? ??? ????.
- ?? ??: ?? ??? TCP/IP ??? ?? ??, ?? ?? ? ??? ???? ?? ? ??? ??????.
- ???? ??: ?? ?? ???? ??? ????? ??? TCP? ? ?????.
4.2 ?? TCP? ???? ????
- ?? ????? ??: ??? ?? ?????? ??? ??? ?????. ????? ???? ??? ?? ?? ??? ????.
- ?? ??? ???? ?? ?? ??: ??, ??, ?? ?? ?. ??? ???? ?? ??? ???? ?? ??? ??? ??? ??? ????.
- ?? ??? ?? ??? ???: ??? ?? ?? ? ????? TCP? ?? ????? ??? ? ????.
?? ??: ???? I/O?? ??? ?? ?? ??? ???? ??? ?? UDP? ??? ??? ??? ? ??? ?? ??? ???? UDP ???? ???? ??? ??? ????. ????? ??? ? ??? ??? ? ?? ???? ????? ?????.
5. ???? ? ??
- ?? ????: ?? ???? ???? ??? CPU, ???, ???? I/O ? ?? ?? ??? ????? ?????? ?? ?????. ?? ??? ?? ?? ??? ???? ????? ? ??? ???.
- ??: UDP ??? ??? ? ??? ???? ????. ??? ??? ??? ???? ?? ?? ???(?: DTLS, UDP ?? TLS) ? ?? ????? ?????? ???? ???? ???.
- NAT(Network Address Translation) ??: P2P ??? ??? ??? ?? UDP? NAT ?? ??? ?????. ?????? ?? ??? ???? ? ??? ?? ?? STUN/TURN ?? ?? ? ?? ??? ??? ? ????.
- ?? ?? ? ?? ??: TCP?? ??? ????? ???? ??? UDP?? ????. UDP? ???? ??? ???? ???? ?? ???? ??? ?? ???? ??? ?? ?? ??? ?? ???? ???.
??: ??? UDP ?? ??? ???? ?? ???? ??? ?????. Netty? ??? ?? ?? ??? ????? ???? ?????? Vert.X, Micronaut ? Quarkus? ?? ?? ?? ?????? ???? ?? ???? ?? ???? ? ????. ???? ???? ???? ??? ??? ??? ? ?? TCP ???? ?????. ?? ?? ??? ??? ???? UDP?? ??? ????? ???? ???? ??? ????. ? “?? ????? ??? ????” ??? ????? ? ?? ???? ? ??? ? ????.
? ??? ??? UDP ?? ?? ??: Netty ? ?? ????? ?? ? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Stock Market GPT
? ??? ??? ?? AI ?? ?? ??

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

-CP ?? ??? ???? JVM? ClassPath? ???? JAVA -Clibrary.jarcom.example.Main? ?? ?? ??? ? ?????? ? ? ???, ?? ???? ?? ???? ?? ? ?? ???? ???? ??? ?? ?? ?? ?? Manifest.MF? ?? ?? ? ? ????.

usefile.createnewfile () to reatefileonlyifitdoesn'texist, ???;

Javaspi? JDK? ?? ??? ?? ?????? Serviceloader? ?? ????? ?? ?? ??? ?????. 1. ??? ?????? ???? Meta-Inf/Services/?? ?????? ?? ??? ?? ??? ???? ?? ???? ??? ? ??? ??????. 2. serviceloader.load ()? ???? ?? ???????? JVM? ???? ??? ?? ????????. 3. ????? ??? ?? ?? ?? ??? ?? ?? ? ?????? ???? ?? ??? ???????. 4. ?? ???? ?????? ?? ?? ?? ??? ? ???? ??? ?????. 5. ??, ??? ??, ?? ??, ??? ?? ? ?? ??????????. 6. Java9??? ?? ???? ?? ?? ? ? ????.

Amplements ???? ???? ?????? ??????. ? ???? ??????? ?? ???? ?? ??? ???????. ?? ?????? ???? ???? ????? ??? ?????. Java 8 ??? ?? ? ?? ???? ?? ??? ??? ????.

javagenericsprovidecompile-timetypesafetyandeliminatecastingtypeparametersonclasses, interfaces, methods; wildcards (?,? extendStype,? supertype) handlUnknowntypeswithflexible.1.useUnunUnunUndwildCardWhentyPeiLISIRVENTERREATHERNEATHEATHEATHEATHEATHEATHEATHEATHEATHEARVENTOUBERDERRELOUNTERRELONTERREATHEARBERBERBENTECASTS;

? ????? ??? TCP ??, ? HTTP ?? ?? (Keep-Alive)?? ?? HTTP ??? ???? ????? ????? ?? ???. ? ??? HTTP/1.X? HTTP/2 ????? ??? ????? ???? ??? ?? ?? ? ??? ???? ??? ???? ???? ?? : ?? ??? ???? ???? ??? ?????. ???? ??? ???? ?? ??? ?????? ???? ????? ??? HTTP ?????? ?? ? ? ??? ?????.

? ????? Java? ?? ?? ??? ???? ?? ? ?? ??? ????? ???? ?? ?? ??? ?? ??? ???? ??? ??? ?????. ? ??? Java 8 Stream API? FlatMap ??? ?? ? ?? ?? ???? ?????. ? ??? ???? ??? ?? ??? ??? ?? ????? ??? ????? ?? ??? ??? ?? ?????.

?? ???? ???? Java ?? ??? ?? ?????. 1. config.properties? ??? ????? ?? getClassLoader (). getResourCeasStream ()? ???????? () ???? ???? ?????? ??? ????. 2. ??? ?? ????? ?? FileInputStream? ??????????. 3. GetProperty (?, ???)? ???? ?? ? ?? ???? ???? ???? ?? ?? ? ?? ??? ?????.
