Java 通过发送套接字发送但从未通过接收套接字读取的消息会发生什么情况?

Java 通过发送套接字发送但从未通过接收套接字读取的消息会发生什么情况?,java,sockets,networking,io,Java,Sockets,Networking,Io,假设我有一个发送方套接字和接收方套接字。发送方套接字发送总共1 GB的消息,但接收方套接字既不从套接字读取也不关闭套接字 在任一套接字关闭之前,1GB的消息会发生什么变化?它们是否位于操作系统缓冲区中的某个位置 更具体地说 每个发送者都有自己的线程 所有发送方都已刷新其输出流 所有消息都通过环回接口传递 是,数据将位于TCP/IP堆栈的缓冲区中。虽然它远小于1Gb 假设您使用TCP—它使用流控制来处理这种情况,那么接收器缓冲区将被填满。当接收器缓冲区满时,发送方将停止发送。发送方缓冲区将填满,

假设我有一个发送方套接字和接收方套接字。发送方套接字发送总共1 GB的消息,但接收方套接字既不从套接字读取也不关闭套接字

在任一套接字关闭之前,1GB的消息会发生什么变化?它们是否位于操作系统缓冲区中的某个位置

更具体地说

  • 每个发送者都有自己的线程
  • 所有发送方都已刷新其输出流
  • 所有消息都通过环回接口传递

是,数据将位于TCP/IP堆栈的缓冲区中。虽然它远小于1Gb

假设您使用TCP—它使用流控制来处理这种情况,那么接收器缓冲区将被填满。当接收器缓冲区满时,发送方将停止发送。发送方缓冲区将填满,当它满时,应用程序写/发送调用将阻塞,直到接收方开始使用数据或发生错误