网络通讯思考-2026.2.26

分类:N08_C与汇编

标签:

while

while(true){

   new Thread(new ServerTask(serverSocket.accept())).start();

}

在java中的网络编程中,以上代码是不是在没有用户链接的时候,是不是线程会进入阻塞的状态,当有用户链接的时候,线程再次进入到调度链表去等调度处理用户链接,我的理解是对的吗?



outputStream.writeUTF("Hello,"+userName);

outputStream.flush();

这2行代码是不是这个意思,第一个writeUTF()方法是向内存中存入数据,flush()方法是将数据传输取出?我的理解是对的吗?


在网络通信中,UDP通信中,每一个数据包的头部字段都是8个吗?2个字节的源端口,

2个字节的目的端口,2个字节的长度,2个字节的校验,能具体讲解一下吗?


在网络通信中,TCP与UDP如果数据量比较大,那么这些数据是在网络7层协议中那一层进行切割成数据包的(数据是怎么切割成数据包的),

并且每一个数据包数据的大小是怎么确定的?能详细的讲解一下吗?


对于“Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口”这段话的理解可以是这样的吗?就是应用层不用考虑怎么将信息变成数据包传输出去,只需要交给Socket就行,数据到达Socket后,就会根据TCP/IP协议将信息转换成数据包传给需要的对方吗?能详细的讲解一下吗?



public class LogEventBroadcaster {

    private final EventLoopGroup group;

    private final Bootstrap bootstrap;

}

在以上代码中,为什么参数用private final修饰?能详细的讲解一下吗?



在tomcat8.5版的源码目录中,那个目录是网络通信的目录?能详细的讲解一下吗?


在TCP/IP网络通信中,服务器与客户端是怎么定TCP粘包的处理方式的,比如是使用固定长度,还是分隔符,或者是消息头和消息体,这个是在三次握手的时候确定吗?能详细的讲解一下吗?



在TCP/IP网络通信中,是怎么知道丢包了,已经丢包后再重传的?能详细的讲解一下双方是怎么的细节吗?


Netty在网络通讯中是不是属于通信中模型中的应用层?能详细的讲解一下吗?


在网络通信中,传输的数据进行TCP粘包的处理是不是就是JAVA中的序列化功能?能详细的讲解一下序列化与数据传输吗?




在netty中的多线程Reactor模式下,client,acceptor,reactor,ThreadPool,

worker threads等等在多线程模式下各自的功能,能详细的讲解一下吗?最好能用生活中的例子说明一下吗



在netty中,如处理粘包与半包的时候,当使用固定长度的策略时,服务器段与客户端是怎么确定这个固定长度的数字的?能详细的讲解一下吗



在netty中,处理粘包与半包的策略如固定长度、分隔符、消息头和消息体,这些与二次编解码器是什么关系呢?最好能用生活中的例子说明一下吗



在网络通讯中,如果使用消息头与消息体的方法处理处理粘包与半包,那是不是当接收方接收到一连串的01组合,就将01组合翻译成字符,而后根据协议查看一下那么字符是代表消息头,消息体,再接着将消息体传递到应用层的二次解码器,看是用的什么格式编码的,如JSON,MessagePack等等编码器,进行方向解码,获得需要的信息。我的理解是对的吗?


在网络通讯中,有个疑问,能帮忙解答一下吗?比如在使用消息头与消息体的方法处理处理粘包与半包时,接收方是在接收到多个消息时,

在还没有来得及处理消息时,每一个包与包之间是啥关系,怎么在内存中存储的,接收方有怎么将他拆成一个个的包的?


OutputStream out = socket.getOutputStream();

DataOutputStream dataOutputStream = new DataOutputStream(out);

dataOutputStream.writeUTF("123");

dataOutputStream.flush();

在网络通讯中,能详细的讲解一下dataOutputStream.flush()中的,flush()后续是怎运行的吗?他是怎么将字符串123传送出去的?就是怎么调用操作系统中的send方法呢?能详细的讲解一下吗?最好能用生活中的例子说明一下吗


public void flush() throws IOException {

   out.flush(); // 这里的out是构造函数传入的OutputStream(即SocketOutputStream)

}

能从out.flush()到调用内核(linux为例)的整个调用代码路径吗?就是怎么一层层的到达,能详细的讲解与列出代码段吗


代码:public static Selector open() throws IOException {

        return SelectorProvider.provider().openSelector();

    }

在java语法中,SelectorProvider.provider().openSelector()这个写法的语法是怎么执行的呢?能举例说明一下吗?


能详细的讲解一下java中链式调用的用法与代码例子吗?最好能用生活中的例子说明一下吗


在NIO通信中,SocketChannel向Selector中注册读写事件,并且Selector通知SocketChannel通知读写事件,我的疑问是,这里的读写事件是谁在读写,通知的是谁,是client,server,还是操作系统,能详细的讲解一下各自的角色吗?最好能用生活中的例子说明一下吗


在netty中,NIOEventLoop与SocketChannel是一一对应的吗?能举例说明一下吗?最好能用生活中的例子说明一下吗


private Set<Event> Events;

这个是什么写法,是不是设置一个set集合?名字为Events呢?能详细的解释一下吗,并且能举例说明一下吗?


在NIO通信中,UDP是怎么确定一个包的,一个包最多能写入多少内容?能详细的解释一下吗,最好能用生活中的例子说明一下吗


修改内容