小弟第一次写SocketChannel程序,向高手提出一个疑问.我在做一个通信程序,我想问的是:
Socket本身的带的缓冲区有多大,我用的是非阻塞模式。我看别人写的程序是先从Socket中读取数据,然后放入一个Buffer中,Buffer里的数据由别的线程读取解码。
大家觉得有没有必要啊?
我认为Socket底层本身带有缓冲区,我用阻塞模式读消息包,然后直接分发即可。至于消息包的缓冲可由其他线程缓存。这样在大流量通信中是否可取呢?会不会造成系统崩溃。
Socket本身的带的缓冲区有多大,我用的是非阻塞模式。我看别人写的程序是先从Socket中读取数据,然后放入一个Buffer中,Buffer里的数据由别的线程读取解码。
大家觉得有没有必要啊?
我认为Socket底层本身带有缓冲区,我用阻塞模式读消息包,然后直接分发即可。至于消息包的缓冲可由其他线程缓存。这样在大流量通信中是否可取呢?会不会造成系统崩溃。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货