1、假如同步socketChannel.write(byte[])这个方法调用成功了,是表示对端一定能收到数据吗?还是说只是写到了本地的TCP 那个缓冲区里面?
2、还有一种是socketChannel是异步的情况下,如果我对端宕机了,我这端的select可以感知到read事件和write事件吗?如果能的话,是哪个事件呢?原理是什么呢?
这几个问题困扰我好久了,还望大牛给小弟指点迷津~~
1、假如同步socketChannel.write(byte[])这个方法调用成功了,是表示对端一定能收到数据吗?还是说只是写到了本地的TCP 那个缓冲区里面?
2、还有一种是socketChannel是异步的情况下,如果我对端宕机了,我这端的select可以感知到read事件和write事件吗?如果能的话,是哪个事件呢?原理是什么呢?
这几个问题困扰我好久了,还望大牛给小弟指点迷津~~
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
5 回答3.6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
OP_WRITE
就说明数据已发出去;无论哪种方式似乎都无法确保对方收到,除非对方用数据来应答;FIN
或RST
,你应该会select到一个OP_READ
,并在read时得到-1或异常。