小编asa*_*blo的帖子

内核缓冲区、TCP 套接字缓冲区和滑动窗口有什么区别

这是我对 TCP/IP 中传入数据流的理解

  1. 内核从网络接口读取数据到其缓冲区
  2. 内核将数据从其缓冲区复制到 TCP 套接字缓冲区,滑动窗口在其中工作
  3. 被read()阻塞的程序被唤醒并从套接字缓冲区复制数据。

我有点困惑滑动窗口位于哪里,或者它与套接字缓冲区相同

networking tcp linux-kernel sliding-window

6
推荐指数
1
解决办法
9163
查看次数

如何删除peer if-else分支中的冗长句子

在这个程序中我有三个if-else分支

int main(){
    if(condition == 1)
        functionA();
    if(condition == 2)
        functionB();
    if(condition == 3)
        functionA&B();
    }
Run Code Online (Sandbox Code Playgroud)

假设条件的值只在1到3之间变化.我想知道是否有条件= 3的方式,所以我不必调用functionA&B()但只使用条件= 1和条件= 2的前一个结果?

上面的详细版本:我在客户端和服务器之间建立了连接,客户端有条件地调用函数并将条件值发送到服务器,服务器获取条件值并调用回调函数.例如,functionA()将发送1,函数B()将发送2.发送可以完成如下:

if((conditionA & 1) > 0)
    functionA();
    send_1();
if((conditionB & 2) > 0?
    functionB();
    send_2();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,服务器对于condA为"1",对于condB为"2",对于condC为"1"和"2".服务器无法判断完整的condC请求,因为3除以1和2.因此,我想知道在2 if分支后是否可以调用发送以及服务器如何收集相应的"1"和"2"到"3"?提前致谢!

c++ if-statement c++11

0
推荐指数
1
解决办法
127
查看次数