我有一个运行良好的 java 客户端-服务器应用程序。现在我想做一些我不确定是否可能的改变。我想在接受服务器中断时延迟处理客户端数据。我想在接受中断后将所有处理逻辑包装到一个函数中,只要我希望处理数据而不是在接受中断后立即调用该函数。Perl 允许使用 sysread 函数来实现这一点,该函数将套接字 id 视为文件处理程序并进行处理。在 Java 中可能吗?
存在什么:
void server_side()
{ 
     // usual server code
     accept() // blocking code waiting for client data 
     ...accept breaks so process data now ..
}
我想要的是 :
void server_side(){
     // usual servercode
     accept() // blocking for client data
     .. I dont want to process just yet .. Wait !
}
void main() 
{
  .. Usual code ..
   **Ok lets process client data here .**
}
在某种程度上Perl是美丽的,并允许这样的事情发生。在 perl 中,您可以使用这样的sysread命令
    Create socket
       void create()
    {
        .. Usual socket code ..
         $sock = $mainsock->accept();
         ... DONT process here . Will process later in function processing 
    }
void processing()
{
    .. Use sysread to treat socket handler as file . 
    .. Lets read now.
    my $bytes_to_read = 1024;
    my $bytes_read = sysread($sock, $buffer, $bytes_to_read);
    ...
}
我可以用 Java 做到这一点吗?