poll return POLLIN 可以读取多少条数据
How many data can be read when poll return POLLIN
如果有client/servertcp通信情况:
客户端向服务器发送1MB的消息,在服务器端我们使用poll()和recv()函数从socket中读取消息,顺序可能是这样的
投票 -> POLLIN -> recv -> 投票 -> POLLIN - recv ...... 投票 -> POLLIN - recv
我的问题是
如果 poll() 函数告诉我套接字状态是 POLLIN,当我从套接字 FD 读取时,从套接字读取的数据大小是 return 由 recv api as "ssize_t" . "ssize_t"是多少,有没有什么规则或者一些设置是我们可以控制的。因为我们不想以 1024*1024 的时间只读取 1 字节的 1MB 数据,因为它会降低系统性能
POLLIN 仅表示 一些 数据可供读取。它不提供有多少数据可用的任何信息。但是你可以简单地读取你想要的数据,因为 recv
不会等到你可能想要的所有数据都可用,而只是 return 到目前为止可以读取的数据。
如果有client/servertcp通信情况:
客户端向服务器发送1MB的消息,在服务器端我们使用poll()和recv()函数从socket中读取消息,顺序可能是这样的 投票 -> POLLIN -> recv -> 投票 -> POLLIN - recv ...... 投票 -> POLLIN - recv
我的问题是 如果 poll() 函数告诉我套接字状态是 POLLIN,当我从套接字 FD 读取时,从套接字读取的数据大小是 return 由 recv api as "ssize_t" . "ssize_t"是多少,有没有什么规则或者一些设置是我们可以控制的。因为我们不想以 1024*1024 的时间只读取 1 字节的 1MB 数据,因为它会降低系统性能
POLLIN 仅表示 一些 数据可供读取。它不提供有多少数据可用的任何信息。但是你可以简单地读取你想要的数据,因为 recv
不会等到你可能想要的所有数据都可用,而只是 return 到目前为止可以读取的数据。