![]() |
1
1
socketchannel.write将在非阻塞模式下返回可以立即发送到网络而不阻塞的字节数。您的问题让我认为您希望write方法使用整个缓冲区,并尝试异步地向网络发送额外的数据,但这不是它的工作方式。 如果您确实需要确保在断开套接字之前将错误消息发送到客户机,那么我只需在调用write方法之前启用阻塞。使用非阻塞模式,您必须在一个循环中调用write,计算每次调用发送的字节数,并在成功地将整个消息传递到套接字时退出循环(我知道,解决方案不好,不必要的代码,忙等待等等)。 |
![]() |
2
0
您最好启动一个线程并同步地将数据写入通道。异步API更倾向于“一个线程调度多个通道”,而不是真正用于触发和忘记通信。 |
![]() |
3
0
这个
|
![]() |
Mr. Kisus · 如何删除数字对中的第二个数字 3 年前 |
![]() |
Prince · 复制大型文件需要更多时间 3 年前 |
![]() |
altern · 输出haskell对象,忽略“show”声明 7 年前 |
![]() |
supermeerkat · 嵌套并行。For()循环和文件创建问题 7 年前 |
![]() |
Arka Pal · 关闭管道中未使用的端部 7 年前 |
|
Marta · 重命名提取文件的文件夹 7 年前 |
![]() |
Sean2148 · 如何在Java 8中使用CSV值作为构造函数参数 7 年前 |
![]() |
youR.Fate · 在c中向fstream写入二进制数据++ 7 年前 |
![]() |
Jon Lauridsen · 等待放在哪里? 7 年前 |