首页 文章
  • 2 votes
     answers
     views

    epoll recv返回值

    我正在使用epoll作为关卡触发 . 根据recv(3),如果 recv 返回 0 "no messages are available to be received and the peer has performed an orderly shutdown" . 这是否意味着已收到整个请求且另一方已关闭套接字?套接字两端都已关闭?或者只是收到整个请求并且套接字正在等待写入...
  • 6 votes
     answers
     views

    给定任何epoll TCP套接字事件,如果EPOLLRDHUP = 0且EPOLLIN = 1;是对read()/ recv()的后续调用,保证返回不等于0的读取大小?

    从epoll_ctl的手册: EPOLLRDHUP(自Linux 2.6.17开始)流套接字对等关闭连接,或关闭写入一半的连接 . (此标志对于编写简单代码以在使用边缘触发监视时检测对等关闭特别有用 . ) 从recv手册: 如果没有可以接收的消息且对等体已经执行了有序关闭,则recv()将返回0 . 在我看来,上面的两个都涵盖了相同的场景,并且只要我首先捕获EPOLLRDHUP事件,我...
  • 5 votes
     answers
     views

    Linux FD向用户公开等待

    想象一下,有一个库可以启动服务器套接字并管理所有客户端的epoll fd . 由于所有内容都应该是非阻塞的,因此控制权将传递给用户,该用户可能希望对不同的fds进行选择,包括通知库的那个 . 目前,用户指定回调 . 然后,用户可以调用评估epoll的服务例程并调用那些回调,以避免不断调用服务例程,而是执行用户可能想要在epoll fd上等待的其他事情 . 在不暴露epoll fd的情况下向用户公开...
  • 1 votes
     answers
     views

    .net core async / await tcp with linux

    我尝试用.net和linux编写简单的echo服务器代码 static async Task soc() { var listener = new TcpListener(IPAddress.Loopback, 8888); listener.Start(); for (;;) { logger.LogInformation(...

热门问题